mirror of
https://git.yoctoproject.org/poky
synced 2026-09-15 15:49:32 +02:00
wget: Fix CVE-2026-58469
This patch applies the upstream fix as referenced in [2], using the commit shown in [1]. It also includes the upstream follow-up fixes referenced in [3] and [4]. These correct the trailing whitespace check introduced by the original fix and add the required <ctype.h> include for isspace(). [1]37a40fcb45[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58469 [3]7b1cdecc49[4]82d945ff5d(From OE-Core rev: 9b76cb0b22f9a0ec2877ac69ab4007f2cd2178e5) Signed-off-by: Hetvi Thakar <hthakar@cisco.com> Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
1a7b2e6b68
commit
a3df9d6274
@@ -0,0 +1,39 @@
|
|||||||
|
From be4edfe6d30a9db8e51215f0232d31eb92d502ec Mon Sep 17 00:00:00 2001
|
||||||
|
From: ChenYanpan <chenyanpan@xfusion.com>
|
||||||
|
Date: Wed, 8 Jul 2026 12:09:55 +0800
|
||||||
|
Subject: [PATCH] * src/metalink.c (clean_metalink_string): Fix inverted
|
||||||
|
trailing-space check
|
||||||
|
|
||||||
|
37a40fcb added an `end > beg' bound guard to prevent a buffer
|
||||||
|
underflow, but accidentally flipped the condition from `isspace' to
|
||||||
|
`!isspace'. The loop therefore walked back over non-space characters
|
||||||
|
instead of trailing whitespace, collapsing any string without a
|
||||||
|
trailing newline to "". Every Metalink/HTTP resource URL was wiped,
|
||||||
|
so wget could not follow any mirror and
|
||||||
|
testenv/Test-metalink-http.py failed ("Expected file test.meta not
|
||||||
|
found"). Restore the `isspace' condition.
|
||||||
|
|
||||||
|
Copyright-paperwork-exempt: Yes
|
||||||
|
|
||||||
|
CVE: CVE-2026-58469
|
||||||
|
Upstream-Status: Backport [https://gitlab.com/gnuwget/wget/-/commit/7b1cdecc49bc77bde220fc575c8a00386c3f3bcf]
|
||||||
|
|
||||||
|
(cherry picked from commit 7b1cdecc49bc77bde220fc575c8a00386c3f3bcf)
|
||||||
|
Signed-off-by: Hetvi Thakar <hthakar@cisco.com>
|
||||||
|
---
|
||||||
|
src/metalink.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/metalink.c b/src/metalink.c
|
||||||
|
index 10d58cf7..9f969a60 100644
|
||||||
|
--- a/src/metalink.c
|
||||||
|
+++ b/src/metalink.c
|
||||||
|
@@ -1061,7 +1061,7 @@ clean_metalink_string (char **str)
|
||||||
|
/* If we are at the end of the string, search the first legit
|
||||||
|
character going backward. */
|
||||||
|
if (*end == '\0')
|
||||||
|
- while (end > beg && !isspace(*(end - 1)))
|
||||||
|
+ while (end > beg && isspace(*(end - 1)))
|
||||||
|
end--;
|
||||||
|
|
||||||
|
new = xmemdup0 (beg, end - beg);
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
From aa412523158313619dd04d49b6f769d639e7dcc5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
|
||||||
|
Date: Thu, 9 Jul 2026 14:50:40 +0200
|
||||||
|
Subject: [PATCH] * src/metalink.c: Include ctype.h
|
||||||
|
|
||||||
|
CVE: CVE-2026-58469
|
||||||
|
Upstream-Status: Backport [https://gitlab.com/gnuwget/wget/-/commit/82d945ff5dc9942b78b2bf736aac298c24fe00a1]
|
||||||
|
|
||||||
|
(cherry picked from commit 82d945ff5dc9942b78b2bf736aac298c24fe00a1)
|
||||||
|
Signed-off-by: Hetvi Thakar <hthakar@cisco.com>
|
||||||
|
---
|
||||||
|
src/metalink.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/src/metalink.c b/src/metalink.c
|
||||||
|
index 9f969a60..16933be4 100644
|
||||||
|
--- a/src/metalink.c
|
||||||
|
+++ b/src/metalink.c
|
||||||
|
@@ -46,6 +46,7 @@ as that of the covered work. */
|
||||||
|
#include "c-strcase.h"
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h> /* For unlink. */
|
||||||
|
+#include <ctype.h>
|
||||||
|
#include <metalink/metalink_parser.h>
|
||||||
|
#ifdef HAVE_GPGME
|
||||||
|
#include <gpgme.h>
|
||||||
53
meta/recipes-extended/wget/wget/CVE-2026-58469.patch
Normal file
53
meta/recipes-extended/wget/wget/CVE-2026-58469.patch
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
From 2442499cc090e6aa804b0295fe9f881b78df2940 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
|
||||||
|
Date: Mon, 29 Jun 2026 18:32:02 +0200
|
||||||
|
Subject: [PATCH] * src/metalink.c (clean_metalink_string): Fix buffer
|
||||||
|
underflow
|
||||||
|
|
||||||
|
Reported-by: TristanInSec@gmail.com
|
||||||
|
|
||||||
|
CVE: CVE-2026-58469
|
||||||
|
Upstream-Status: Backport [https://gitlab.com/gnuwget/wget/-/commit/37a40fcb450153f69537c7cbc2a7a4fb0b6f7826]
|
||||||
|
|
||||||
|
(cherry picked from commit 37a40fcb450153f69537c7cbc2a7a4fb0b6f7826)
|
||||||
|
Signed-off-by: Hetvi Thakar <hthakar@cisco.com>
|
||||||
|
---
|
||||||
|
src/metalink.c | 9 +++------
|
||||||
|
1 file changed, 3 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/metalink.c b/src/metalink.c
|
||||||
|
index eca839c2..10d58cf7 100644
|
||||||
|
--- a/src/metalink.c
|
||||||
|
+++ b/src/metalink.c
|
||||||
|
@@ -1041,7 +1041,6 @@ void
|
||||||
|
clean_metalink_string (char **str)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
- size_t len;
|
||||||
|
char *new, *beg, *end;
|
||||||
|
|
||||||
|
if (!str || !*str)
|
||||||
|
@@ -1049,7 +1048,7 @@ clean_metalink_string (char **str)
|
||||||
|
|
||||||
|
beg = *str;
|
||||||
|
|
||||||
|
- while ((c = *beg) && (c == '\n' || c == '\r' || c == '\t' || c == ' '))
|
||||||
|
+ while (isspace(*beg))
|
||||||
|
beg++;
|
||||||
|
|
||||||
|
end = beg;
|
||||||
|
@@ -1062,12 +1061,10 @@ clean_metalink_string (char **str)
|
||||||
|
/* If we are at the end of the string, search the first legit
|
||||||
|
character going backward. */
|
||||||
|
if (*end == '\0')
|
||||||
|
- while ((c = *(end - 1)) && (c == '\n' || c == '\r' || c == '\t' || c == ' '))
|
||||||
|
+ while (end > beg && !isspace(*(end - 1)))
|
||||||
|
end--;
|
||||||
|
|
||||||
|
- len = end - beg;
|
||||||
|
-
|
||||||
|
- new = xmemdup0 (beg, len);
|
||||||
|
+ new = xmemdup0 (beg, end - beg);
|
||||||
|
xfree (*str);
|
||||||
|
*str = new;
|
||||||
|
}
|
||||||
@@ -2,6 +2,9 @@ SRC_URI = "${GNU_MIRROR}/wget/wget-${PV}.tar.gz \
|
|||||||
file://0002-improve-reproducibility.patch \
|
file://0002-improve-reproducibility.patch \
|
||||||
file://CVE-2024-38428.patch \
|
file://CVE-2024-38428.patch \
|
||||||
file://CVE-2024-10524.patch \
|
file://CVE-2024-10524.patch \
|
||||||
|
file://CVE-2026-58469.patch \
|
||||||
|
file://CVE-2026-58469-regression_p1.patch \
|
||||||
|
file://CVE-2026-58469-regression_p2.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[sha256sum] = "81542f5cefb8faacc39bbbc6c82ded80e3e4a88505ae72ea51df27525bcde04c"
|
SRC_URI[sha256sum] = "81542f5cefb8faacc39bbbc6c82ded80e3e4a88505ae72ea51df27525bcde04c"
|
||||||
|
|||||||
Reference in New Issue
Block a user