summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Marko <peter.marko@siemens.com>2025-07-27 19:49:16 +0200
committerSteve Sakoman <steve@sakoman.com>2025-08-04 07:55:06 -0700
commitbee76dfe7eb0722f3433393b9ae04f1db4977c37 (patch)
tree23d4eaa90367a1545f47ab7d5862467d8282dcbd
parent5de981dd1c686872b94d9bc373ad9a0edf02e64c (diff)
downloadpoky-bee76dfe7eb0722f3433393b9ae04f1db4977c37.tar.gz
gnutls: patch reject zero-length version in certificate request
Pick relevant commit from 3.8.10 release MR [1]. The MR 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: d1aaef9bbaa240c83cc7d485b55570449203da0b) 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-x509-reject-zero-length-version-in-certificate-reque.patch37
-rw-r--r--meta/recipes-support/gnutls/gnutls/3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2bin0 -> 830 bytes
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.8.4.bb5
3 files changed, 41 insertions, 1 deletions
diff --git a/meta/recipes-support/gnutls/gnutls/0001-x509-reject-zero-length-version-in-certificate-reque.patch b/meta/recipes-support/gnutls/gnutls/0001-x509-reject-zero-length-version-in-certificate-reque.patch
new file mode 100644
index 0000000000..5cecbdfccd
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/0001-x509-reject-zero-length-version-in-certificate-reque.patch
@@ -0,0 +1,37 @@
1From 61c0505634a6faacf9fa0723843408aa0d3fb90a Mon Sep 17 00:00:00 2001
2From: Andrew Hamilton <adhamilt@gmail.com>
3Date: Mon, 7 Jul 2025 10:35:54 +0900
4Subject: [PATCH] x509: reject zero-length version in certificate request
5
6Ensure zero size asn1 values are considered invalid in
7gnutls_x509_crq_get_version, this ensures crq version is not used
8uninitialized. Spotted by oss-fuzz at:
9https://issues.oss-fuzz.com/issues/42536706
10
11Signed-off-by: Andrew Hamilton <adhamilt@gmail.com>
12Signed-off-by: Daiki Ueno <ueno@gnu.org>
13
14Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls/-/commit/61c0505634a6faacf9fa0723843408aa0d3fb90a]
15Signed-off-by: Peter Marko <peter.marko@siemens.com>
16---
17 lib/x509/crq.c | 7 +++++++
18 1 file changed, 7 insertions(+)
19
20diff --git a/lib/x509/crq.c b/lib/x509/crq.c
21index 19e13623c..9e9801d2b 100644
22--- a/lib/x509/crq.c
23+++ b/lib/x509/crq.c
24@@ -615,6 +615,13 @@ int gnutls_x509_crq_get_version(gnutls_x509_crq_t crq)
25 return _gnutls_asn2err(result);
26 }
27
28+ /* Note that asn1_read_value can return success with */
29+ /* len set to zero (without setting the data) in some */
30+ /* conditions. */
31+ if (unlikely(len <= 0)) {
32+ return gnutls_assert_val(GNUTLS_E_ASN1_VALUE_NOT_VALID);
33+ }
34+
35 return (int)version[0] + 1;
36 }
37
diff --git a/meta/recipes-support/gnutls/gnutls/3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2 b/meta/recipes-support/gnutls/gnutls/3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2
new file mode 100644
index 0000000000..23ff09c4be
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2
Binary files differ
diff --git a/meta/recipes-support/gnutls/gnutls_3.8.4.bb b/meta/recipes-support/gnutls/gnutls_3.8.4.bb
index 973f81719a..2a73a1e3d8 100644
--- a/meta/recipes-support/gnutls/gnutls_3.8.4.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.8.4.bb
@@ -28,6 +28,8 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar
28 file://04939b75417cc95b7372c6f208c4bda4579bdc34 \ 28 file://04939b75417cc95b7372c6f208c4bda4579bdc34 \
29 file://0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch \ 29 file://0001-psk-fix-read-buffer-overrun-in-the-pre_shared_key-ex.patch \
30 file://5477db1bb507a35e8833c758ce344f4b5b246d8e \ 30 file://5477db1bb507a35e8833c758ce344f4b5b246d8e \
31 file://0001-x509-reject-zero-length-version-in-certificate-reque.patch \
32 file://3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2 \
31 " 33 "
32 34
33SRC_URI[sha256sum] = "2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b" 35SRC_URI[sha256sum] = "2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b"
@@ -68,9 +70,10 @@ do_configure:prepend() {
68 done 70 done
69 71
70 # binary files cannot be delivered as diff 72 # binary files cannot be delivered as diff
71 mkdir -p ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ ${S}/fuzz/gnutls_psk_client_fuzzer.repro/ 73 mkdir -p ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ ${S}/fuzz/gnutls_psk_client_fuzzer.repro/ ${S}/fuzz/gnutls_x509_crq_parser_fuzzer.repro/
72 cp ${WORKDIR}/04939b75417cc95b7372c6f208c4bda4579bdc34 ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/ 74 cp ${WORKDIR}/04939b75417cc95b7372c6f208c4bda4579bdc34 ${S}/fuzz/gnutls_x509_parser_fuzzer.repro/
73 cp ${WORKDIR}/5477db1bb507a35e8833c758ce344f4b5b246d8e ${S}/fuzz/gnutls_psk_client_fuzzer.repro/ 75 cp ${WORKDIR}/5477db1bb507a35e8833c758ce344f4b5b246d8e ${S}/fuzz/gnutls_psk_client_fuzzer.repro/
76 cp ${WORKDIR}/3e94dcdff862ef5d6db8b5cc8e59310b5f0cdfe2 ${S}/fuzz/gnutls_x509_crq_parser_fuzzer.repro/
74} 77}
75 78
76do_compile_ptest() { 79do_compile_ptest() {