summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Marko <peter.marko@siemens.com>2025-07-27 19:59:53 +0200
committerSteve Sakoman <steve@sakoman.com>2025-08-04 06:40:00 -0700
commit5e3b686673a0e45f6efd950146d36152ef5b8c0d (patch)
treed5d1319f639495d113e9bb211ec60dec93e3e7f6
parent9c136548279504f2e458b59f5cdb347c464e6de5 (diff)
downloadpoky-5e3b686673a0e45f6efd950146d36152ef5b8c0d.tar.gz
gnutls: patch read buffer overrun in the "pre_shared_key" extension
Pick relevant commit from 3.8.10 release MR [1]. The ME contains referece to undiscoled issue, so any security relevant patch should be picked. Binary test file was added as separate file as binary diffs are not supported. [1] https://gitlab.com/gnutls/gnutls/-/merge_requests/1979 (From OE-Core rev: 33181e3e8c7427fc823f750e936732b69e247987) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/recipes-support/gnutls/gnutls/0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch34
-rw-r--r--meta/recipes-support/gnutls/gnutls/5477db1bb507a35e8833c758ce344f4b5b246d8ebin0 -> 111 bytes
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.7.4.bb5
3 files changed, 38 insertions, 1 deletions
diff --git a/meta/recipes-support/gnutls/gnutls/0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch b/meta/recipes-support/gnutls/gnutls/0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch
new file mode 100644
index 0000000000..ce78fe1c95
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch
@@ -0,0 +1,34 @@
1From 208c6478d5c20b9d8a9f0a293e3808aa16ee091f Mon Sep 17 00:00:00 2001
2From: Andrew Hamilton <adhamilt@gmail.com>
3Date: Mon, 7 Jul 2025 10:31:55 +0900
4Subject: [PATCH] psk: fix read buffer overrun in the "pre_shared_key"
5 extension
6
7While processing the "pre_shared_key" extension in TLS 1.3, if there
8are certain malformed data in the extension headers, then the code may
9read uninitialized memory (2 bytes) beyond the received TLS extension
10buffer. Spotted by oss-fuzz at:
11https://issues.oss-fuzz.com/issues/42513990
12
13Signed-off-by: Andrew Hamilton <adhamilt@gmail.com>
14Signed-off-by: Daiki Ueno <ueno@gnu.org>
15
16Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls/-/commit/208c6478d5c20b9d8a9f0a293e3808aa16ee091f]
17Signed-off-by: Peter Marko <peter.marko@siemens.com>
18---
19 lib/ext/pre_shared_key.c | 2 ++
20 1 file changed, 2 insertions(+)
21
22diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c
23index 51c4891d5..2cb83e670 100644
24--- a/lib/ext/pre_shared_key.c
25+++ b/lib/ext/pre_shared_key.c
26@@ -839,6 +839,8 @@ static int _gnutls_psk_recv_params(gnutls_session_t session,
27
28 if (session->security_parameters.entity == GNUTLS_CLIENT) {
29 if (session->internals.hsk_flags & HSK_PSK_KE_MODES_SENT) {
30+ DECR_LEN(len, 2);
31+
32 uint16_t selected_identity = _gnutls_read_uint16(data);
33
34 for (i=0;i<sizeof(session->key.binders)/sizeof(session->key.binders[0]);i++) {
diff --git a/meta/recipes-support/gnutls/gnutls/5477db1bb507a35e8833c758ce344f4b5b246d8e b/meta/recipes-support/gnutls/gnutls/5477db1bb507a35e8833c758ce344f4b5b246d8e
new file mode 100644
index 0000000000..009d44c394
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/5477db1bb507a35e8833c758ce344f4b5b246d8e
Binary files differ
diff --git a/meta/recipes-support/gnutls/gnutls_3.7.4.bb b/meta/recipes-support/gnutls/gnutls_3.7.4.bb
index 48ddb269de..4929e44db3 100644
--- a/meta/recipes-support/gnutls/gnutls_3.7.4.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.7.4.bb
@@ -31,6 +31,8 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar
31 file://CVE-2024-12243.patch \ 31 file://CVE-2024-12243.patch \
32 file://CVE-2025-32989.patch \ 32 file://CVE-2025-32989.patch \
33 file://04939b75417cc95b7372c6f208c4bda4579bdc34 \ 33 file://04939b75417cc95b7372c6f208c4bda4579bdc34 \
34 file://0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch \
35 file://5477db1bb507a35e8833c758ce344f4b5b246d8e \
34 " 36 "
35 37
36SRC_URI[sha256sum] = "e6adbebcfbc95867de01060d93c789938cf89cc1d1f6ef9ef661890f6217451f" 38SRC_URI[sha256sum] = "e6adbebcfbc95867de01060d93c789938cf89cc1d1f6ef9ef661890f6217451f"
@@ -69,8 +71,9 @@ do_configure:prepend() {
69 done 71 done
70 72
71 # binary files cannot be delivered as diff 73 # binary files cannot be delivered as diff
72 mkdir -p ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ 74 mkdir -p ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ ${S}/fuzz/gnutls_psk_client_fuzzer.repro/
73 cp ${WORKDIR}/04939b75417cc95b7372c6f208c4bda4579bdc34 ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ 75 cp ${WORKDIR}/04939b75417cc95b7372c6f208c4bda4579bdc34 ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/
76 cp ${WORKDIR}/5477db1bb507a35e8833c758ce344f4b5b246d8e ${S}/fuzz/gnutls_psk_client_fuzzer.repro/
74} 77}
75 78
76PACKAGES =+ "${PN}-openssl ${PN}-xx" 79PACKAGES =+ "${PN}-openssl ${PN}-xx"