From 06f1750ad50b1cea0226576d152d7e96a452b527 Mon Sep 17 00:00:00 2001 From: Peter Marko Date: Thu, 5 Mar 2026 22:46:48 +0100 Subject: [PATCH] busybox: patch CVE-2025-60876 Although the patch was not merged yet, Debian already took it ([1]). Since busybox CVE handling is slow, follow Debian decision. [1] https://sources.debian.org/src/busybox/1:1.37.0-10.1/debian/patches/wget-disallow-control-chars-in-URLs-CVE-2025-60876.patch (From OE-Core rev: 6274e354680db9521d188309cb32d90996ebb3e5) Signed-off-by: Peter Marko Signed-off-by: Fabien Thomas [YC: fixed weird encoding in URL, added "CVE-" to subject] Signed-off-by: Yoann Congal Signed-off-by: Paul Barker --- .../busybox/busybox/CVE-2025-60876.patch | 38 +++++++++++++++++++ meta/recipes-core/busybox/busybox_1.35.0.bb | 1 + 2 files changed, 39 insertions(+) create mode 100644 meta/recipes-core/busybox/busybox/CVE-2025-60876.patch diff --git a/meta/recipes-core/busybox/busybox/CVE-2025-60876.patch b/meta/recipes-core/busybox/busybox/CVE-2025-60876.patch new file mode 100644 index 0000000000..72d7020f62 --- /dev/null +++ b/meta/recipes-core/busybox/busybox/CVE-2025-60876.patch @@ -0,0 +1,38 @@ +From 32c0f6f240fcb041ae7df44a9bbf958d627a8212 Mon Sep 17 00:00:00 2001 +From: Radoslav Kolev +Date: Fri, 21 Nov 2025 11:21:18 +0200 +Subject: [PATCH] wget: don't allow control characters or spaces in the URL + +Fixes CVE-2025-60876 malicious URL can be used to inject +HTTP headers in the request. + +Signed-off-by: Radoslav Kolev +Reviewed-by: Emmanuel Deloget + +CVE: CVE-2025-60876 +Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2025-November/091840.html] +Signed-off-by: Peter Marko +--- + networking/wget.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/networking/wget.c b/networking/wget.c +index 9ec0e67..7602563 100644 +--- a/networking/wget.c ++++ b/networking/wget.c +@@ -536,6 +536,15 @@ static void parse_url(const char *src_url, struct host_info *h) + { + char *url, *p, *sp; + ++ /* Fix for CVE-2025-60876 - don't allow control characters or spaces in the URL */ ++ /* otherwise a malicious URL can be used to inject HTTP headers in the request */ ++ const unsigned char *u = (void *) src_url; ++ while (*u) { ++ if (*u <= ' ') ++ bb_simple_error_msg_and_die("Unencoded control character found in the URL!"); ++ u++; ++ } ++ + free(h->allocated); + h->allocated = url = xstrdup(src_url); + diff --git a/meta/recipes-core/busybox/busybox_1.35.0.bb b/meta/recipes-core/busybox/busybox_1.35.0.bb index 57a5747a48..0b5ac220f5 100644 --- a/meta/recipes-core/busybox/busybox_1.35.0.bb +++ b/meta/recipes-core/busybox/busybox_1.35.0.bb @@ -61,6 +61,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://CVE-2023-39810.patch \ file://CVE-2025-46394-01.patch \ file://CVE-2025-46394-02.patch \ + file://CVE-2025-60876.patch \ " SRC_URI:append:libc-musl = " file://musl.cfg "