mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
libuv: fix CVE-2024-24806
Upstream-Status: Backport [https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629] Upstream-Status: Backport [https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70] Upstream-Status: Backport [https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39] (From OE-Core rev: 9aa207a91a78309015aa0070a98769c821a7ecd6) Signed-off-by: Hugo SIMELIERE <hsimeliere.opensource@witekio.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
43691193b4
commit
35e45b6d51
@@ -0,0 +1,56 @@
|
|||||||
|
From b8ee33667d265b936d60ee7f0ba0b22463ccb019 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Noordhuis <info@bnoordhuis.nl>
|
||||||
|
Date: Thu, 18 Jan 2024 14:51:40 +0100
|
||||||
|
Subject: [PATCH] fix: always zero-terminate idna output
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629]
|
||||||
|
CVE: CVE-2024-24806
|
||||||
|
|
||||||
|
Fixes: https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
|
||||||
|
Signed-off-by: Hugo SIMELIERE <hsimeliere.opensource@witekio.com>
|
||||||
|
---
|
||||||
|
src/idna.c | 5 +++--
|
||||||
|
test/test-idna.c | 4 ++++
|
||||||
|
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/idna.c b/src/idna.c
|
||||||
|
index 93d982ca..ce7f2746 100644
|
||||||
|
--- a/src/idna.c
|
||||||
|
+++ b/src/idna.c
|
||||||
|
@@ -308,8 +308,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (d < de)
|
||||||
|
- *d++ = '\0';
|
||||||
|
+ if (d >= de)
|
||||||
|
+ return UV_EINVAL;
|
||||||
|
|
||||||
|
+ *d++ = '\0';
|
||||||
|
return d - ds; /* Number of bytes written. */
|
||||||
|
}
|
||||||
|
diff --git a/test/test-idna.c b/test/test-idna.c
|
||||||
|
index f4fad965..d079be55 100644
|
||||||
|
--- a/test/test-idna.c
|
||||||
|
+++ b/test/test-idna.c
|
||||||
|
@@ -99,6 +99,7 @@ TEST_IMPL(utf8_decode1) {
|
||||||
|
TEST_IMPL(utf8_decode1_overrun) {
|
||||||
|
const char* p;
|
||||||
|
char b[1];
|
||||||
|
+ char c[1];
|
||||||
|
|
||||||
|
/* Single byte. */
|
||||||
|
p = b;
|
||||||
|
@@ -112,6 +113,9 @@ TEST_IMPL(utf8_decode1_overrun) {
|
||||||
|
ASSERT_EQ((unsigned) -1, uv__utf8_decode1(&p, b + 1));
|
||||||
|
ASSERT_EQ(p, b + 1);
|
||||||
|
|
||||||
|
+ b[0] = 0x7F;
|
||||||
|
+ ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 1, c, c + 1));
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
From 96f881c8f600da33ec4ecec450ec491990ce613b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Noordhuis <info@bnoordhuis.nl>
|
||||||
|
Date: Thu, 18 Jan 2024 14:52:38 +0100
|
||||||
|
Subject: [PATCH] fix: reject zero-length idna inputs
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70]
|
||||||
|
CVE: CVE-2024-24806
|
||||||
|
|
||||||
|
Fixes: https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
|
||||||
|
Signed-off-by: Hugo SIMELIERE <hsimeliere.opensource@witekio.com>
|
||||||
|
---
|
||||||
|
src/idna.c | 3 +++
|
||||||
|
test/test-idna.c | 1 +
|
||||||
|
2 files changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/idna.c b/src/idna.c
|
||||||
|
index ce7f2746..858b19d0 100644
|
||||||
|
--- a/src/idna.c
|
||||||
|
+++ b/src/idna.c
|
||||||
|
@@ -274,6 +274,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
||||||
|
char* ds;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
+ if (s == se)
|
||||||
|
+ return UV_EINVAL;
|
||||||
|
+
|
||||||
|
ds = d;
|
||||||
|
|
||||||
|
si = s;
|
||||||
|
diff --git a/test/test-idna.c b/test/test-idna.c
|
||||||
|
index d079be55..d59b521e 100644
|
||||||
|
--- a/test/test-idna.c
|
||||||
|
+++ b/test/test-idna.c
|
||||||
|
@@ -114,6 +114,7 @@ TEST_IMPL(utf8_decode1_overrun) {
|
||||||
|
ASSERT_EQ(p, b + 1);
|
||||||
|
|
||||||
|
b[0] = 0x7F;
|
||||||
|
+ ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 0, c, c + 1));
|
||||||
|
ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 1, c, c + 1));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
From a7443ee6b3b3c6a12708148aa9bb001b7782905c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Santiago Gimeno <santiago.gimeno@gmail.com>
|
||||||
|
Date: Wed, 7 Feb 2024 20:27:58 +0100
|
||||||
|
Subject: [PATCH] test: empty strings are not valid IDNA
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39]
|
||||||
|
CVE: CVE-2024-24806
|
||||||
|
|
||||||
|
Fixes: https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
|
||||||
|
Signed-off-by: Hugo SIMELIERE <hsimeliere.opensource@witekio.com>
|
||||||
|
---
|
||||||
|
test/test-idna.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/test/test-idna.c b/test/test-idna.c
|
||||||
|
index d59b521e..37da38de 100644
|
||||||
|
--- a/test/test-idna.c
|
||||||
|
+++ b/test/test-idna.c
|
||||||
|
@@ -150,8 +150,8 @@ TEST_IMPL(idna_toascii) {
|
||||||
|
/* Illegal inputs. */
|
||||||
|
F("\xC0\x80\xC1\x80", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
||||||
|
F("\xC0\x80\xC1\x80.com", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
||||||
|
+ F("", UV_EINVAL);
|
||||||
|
/* No conversion. */
|
||||||
|
- T("", "");
|
||||||
|
T(".", ".");
|
||||||
|
T(".com", ".com");
|
||||||
|
T("example", "example");
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
@@ -6,7 +6,11 @@ LICENSE = "MIT"
|
|||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=ad93ca1fffe931537fcf64f6fcce084d"
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=ad93ca1fffe931537fcf64f6fcce084d"
|
||||||
|
|
||||||
SRCREV = "0c1fa696aa502eb749c2c4735005f41ba00a27b8"
|
SRCREV = "0c1fa696aa502eb749c2c4735005f41ba00a27b8"
|
||||||
SRC_URI = "git://github.com/libuv/libuv.git;branch=v1.x;protocol=https"
|
SRC_URI = "git://github.com/libuv/libuv.git;branch=v1.x;protocol=https \
|
||||||
|
file://CVE-2024-24806-1.patch \
|
||||||
|
file://CVE-2024-24806-2.patch \
|
||||||
|
file://CVE-2024-24806-3.patch \
|
||||||
|
"
|
||||||
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
|
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
Reference in New Issue
Block a user