summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2023-06-15 01:50:09 +0300
committerPatrick Williams <patrick@stwcx.xyz>2023-06-15 01:56:06 +0300
commitc2858f16b31b065f92c42c838cf21d3592bc06e7 (patch)
tree58ffae2ee30976a58733f0ad4a3e6950b4258987 /poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch
parent841583d6ba5918b60868b708ff0b89cf0409efa7 (diff)
downloadopenbmc-dunfell.tar.xz
subtree updatesdunfell
poky: a631bfc3a3..733d919af4: Alex Kiernan (2): pypi.bbclass: Set CVE_PRODUCT to PYPI_PACKAGE openssh: Move sshdgenkeys.service to sshd.socket Arturo Buzarra (1): run-postinsts: Set dependency for ldconfig to avoid boot issues Ashish Sharma (2): connman: Fix CVE-2023-28488 DoS in client.c golang: Fix CVE-2023-24539 Bruce Ashfield (5): linux-yocto/5.4: update to v5.4.238 linux-yocto/5.4: update to v5.4.240 linux-yocto/5.4: update to v5.4.241 linux-yocto/5.4: update to v5.4.242 linux-yocto/5.4: update to v5.4.243 Dmitry Baryshkov (1): linux-firmware: upgrade 20230210 -> 20230404 Hitendra Prajapati (2): git: fix CVE-2023-29007 git: fix CVE-2023-25652 Khem Raj (1): perf: Depend on native setuptools3 Marek Vasut (1): cpio: Fix wrong CRC with ASCII CRC for large files Martin Jansa (1): populate_sdk_ext.bbclass: set METADATA_REVISION with an DISTRO override Nikhil R (1): ffmpeg: Fix CVE-2022-48434 Peter Marko (1): libxml2: patch CVE-2023-28484 and CVE-2023-29469 Randolph Sapp (1): wic/bootimg-efi: if fixed-size is set then use that for mkdosfs Ranjitsinh Rathod (1): libbsd: Add correct license for all packages Shubham Kulkarni (1): go: Security fix for CVE-2023-24538 Siddharth (1): curl: ammend fix for CVE-2023-27534 to fix error when ssh is enabled Steve Sakoman (1): selftest: skip virgl test on ubuntu 22.10, fedora 37, and all rocky Thomas Roos (1): oeqa/utils/metadata.py: Fix running oe-selftest running with no distro set Vijay Anusuri (3): ghostscript: Fix CVE-2023-28879 xserver-xorg: Security fix CVE-2023-0494 and CVE-2023-1393 go: Security fix CVE-2023-24540 Vivek Kumbhar (1): freetype: fix CVE-2023-2004 integer overflowin in tt_hvadvance_adjust() in src/truetype/ttgxvar.c Yoann Congal (1): linux-yocto: Exclude 294 CVEs already fixed upstream meta-openembedded: 7007d14c25..116bfe8d5e: Alex Yao (1): lcov: Fix Perl Path Hitendra Prajapati (1): multipath-tools: CVE-2022-41973 Symlink attack multipathd operates insecurely Hugo SIMELIERE (3): openvpn: add CVE-2020-7224 and CVE-2020-27569 to allowlist openvpn: upgrade 2.4.9 -> 2.4.12 libmodbus: Fix CVE-2022-0367 Jack Mitchell (2): nss: backport fix for native build failure due to implicit casting with gcc13 nss: backport fix for native build failure due to dangling pointer with gcc13 Narpat Mali (1): nodejs: make 14.18.1 available but not default Valeria Petrov (1): apache2: upgrade 2.4.56 -> 2.4.57 Viktor Rosendahl (1): jsoncpp: Fix broken handling of escape characters Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I8260e0168ea1ddec7ee03555e4f5653155e0ab45
Diffstat (limited to 'poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch')
-rw-r--r--poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch94
1 files changed, 94 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch b/poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch
new file mode 100644
index 0000000000..d6b17a2b8a
--- /dev/null
+++ b/poky/meta/recipes-devtools/git/files/CVE-2023-25652.patch
@@ -0,0 +1,94 @@
+From 9db05711c98efc14f414d4c87135a34c13586e0b Mon Sep 17 00:00:00 2001
+From: Johannes Schindelin <johannes.schindelin@gmx.de>
+Date: Thu, 9 Mar 2023 16:02:54 +0100
+Subject: [PATCH] apply --reject: overwrite existing `.rej` symlink if it
+ exists
+
+The `git apply --reject` is expected to write out `.rej` files in case
+one or more hunks fail to apply cleanly. Historically, the command
+overwrites any existing `.rej` files. The idea being that
+apply/reject/edit cycles are relatively common, and the generated `.rej`
+files are not considered precious.
+
+But the command does not overwrite existing `.rej` symbolic links, and
+instead follows them. This is unsafe because the same patch could
+potentially create such a symbolic link and point at arbitrary paths
+outside the current worktree, and `git apply` would write the contents
+of the `.rej` file into that location.
+
+Therefore, let's make sure that any existing `.rej` file or symbolic
+link is removed before writing it.
+
+Reported-by: RyotaK <ryotak.mail@gmail.com>
+Helped-by: Taylor Blau <me@ttaylorr.com>
+Helped-by: Junio C Hamano <gitster@pobox.com>
+Helped-by: Linus Torvalds <torvalds@linuxfoundation.org>
+Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
+
+Upstream-Status: Backport [https://github.com/git/git/commit/9db05711c98efc14f414d4c87135a34c13586e0b]
+CVE: CVE-2023-25652
+Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
+---
+ apply.c | 14 ++++++++++++--
+ t/t4115-apply-symlink.sh | 15 +++++++++++++++
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/apply.c b/apply.c
+index 4f303bf..aa7111d 100644
+--- a/apply.c
++++ b/apply.c
+@@ -4531,7 +4531,7 @@ static int write_out_one_reject(struct apply_state *state, struct patch *patch)
+ FILE *rej;
+ char namebuf[PATH_MAX];
+ struct fragment *frag;
+- int cnt = 0;
++ int fd, cnt = 0;
+ struct strbuf sb = STRBUF_INIT;
+
+ for (cnt = 0, frag = patch->fragments; frag; frag = frag->next) {
+@@ -4571,7 +4571,17 @@ static int write_out_one_reject(struct apply_state *state, struct patch *patch)
+ memcpy(namebuf, patch->new_name, cnt);
+ memcpy(namebuf + cnt, ".rej", 5);
+
+- rej = fopen(namebuf, "w");
++ fd = open(namebuf, O_CREAT | O_EXCL | O_WRONLY, 0666);
++ if (fd < 0) {
++ if (errno != EEXIST)
++ return error_errno(_("cannot open %s"), namebuf);
++ if (unlink(namebuf))
++ return error_errno(_("cannot unlink '%s'"), namebuf);
++ fd = open(namebuf, O_CREAT | O_EXCL | O_WRONLY, 0666);
++ if (fd < 0)
++ return error_errno(_("cannot open %s"), namebuf);
++ }
++ rej = fdopen(fd, "w");
+ if (!rej)
+ return error_errno(_("cannot open %s"), namebuf);
+
+diff --git a/t/t4115-apply-symlink.sh b/t/t4115-apply-symlink.sh
+index 1acb7b2..2b034ff 100755
+--- a/t/t4115-apply-symlink.sh
++++ b/t/t4115-apply-symlink.sh
+@@ -125,4 +125,19 @@ test_expect_success SYMLINKS 'symlink escape when deleting file' '
+ test_path_is_file .git/delete-me
+ '
+
++test_expect_success SYMLINKS '--reject removes .rej symlink if it exists' '
++ test_when_finished "git reset --hard && git clean -dfx" &&
++
++ test_commit file &&
++ echo modified >file.t &&
++ git diff -- file.t >patch &&
++ echo modified-again >file.t &&
++
++ ln -s foo file.t.rej &&
++ test_must_fail git apply patch --reject 2>err &&
++ test_i18ngrep "Rejected hunk" err &&
++ test_path_is_missing foo &&
++ test_path_is_file file.t.rej
++'
++
+ test_done
+--
+2.25.1
+