mirror of
https://git.yoctoproject.org/poky
synced 2026-09-12 06:49:32 +02:00
libssh2: fix CVE-2026-66033
Reference:
https://nvd.nist.gov/vuln/detail/CVE-2026-66033
a2ed82d409
libssh2 ptest results (qemux86-64):
before: PASSED: 1 FAILED: 0 SKIPPED: 0
after: PASSED: 1 FAILED: 0 SKIPPED: 0
(From OE-Core rev: bd8afadd38a27c0e143cf7b0096c2abded569f82)
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Fabien Thomas <fabien.thomas@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
This commit is contained in:
committed by
Paul Barker
parent
23aeeb9e5d
commit
69957c8adf
45
meta/recipes-support/libssh2/libssh2/CVE-2026-66033.patch
Normal file
45
meta/recipes-support/libssh2/libssh2/CVE-2026-66033.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
From d1b6996c3b31ce6b60d5a820ecc33880e61ef0ae Mon Sep 17 00:00:00 2001
|
||||
From: Viktor Szakats <commit@vsz.me>
|
||||
Date: Thu, 23 Jul 2026 10:32:04 +0200
|
||||
Subject: [PATCH] openssl: fix potential OOB read/write with AES-GCM in
|
||||
`ssh2_cipher_crypt()`
|
||||
|
||||
By applying two bounds checks to non-debug builds.
|
||||
|
||||
Reported-by: Vladimir Eli Tokarev
|
||||
Fixes GHSA-c4f7-cvfc-33j7
|
||||
Follow-up to 3c953c05d67eb1ebcfd3316f279f12c4b1d600b4 #797
|
||||
|
||||
Closes #2401
|
||||
|
||||
CVE: CVE-2026-66033
|
||||
Upstream-Status: Backport [https://github.com/libssh2/libssh2/commit/a2ed82d40964bbc0d64cd717aa0a5a892117d2e6]
|
||||
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
|
||||
---
|
||||
src/openssl.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/openssl.c b/src/openssl.c
|
||||
index eba05031..28ae1cc0 100644
|
||||
--- a/src/openssl.c
|
||||
+++ b/src/openssl.c
|
||||
@@ -1042,13 +1042,15 @@ _libssh2_cipher_crypt(_libssh2_cipher_ctx * ctx,
|
||||
const int aadlen = (is_aesgcm && IS_FIRST(firstlast)) ? 4 : 0;
|
||||
/* size of AT, if present */
|
||||
const int authenticationtag = IS_LAST(firstlast) ? authlen : 0;
|
||||
- /* length to encrypt */
|
||||
- const int cryptlen = (unsigned int)blocksize - aadlen - authenticationtag;
|
||||
+ unsigned int cryptlen; /* length to encrypt */
|
||||
|
||||
(void)algo;
|
||||
|
||||
- assert(blocksize <= sizeof(buf));
|
||||
- assert(cryptlen >= 0);
|
||||
+ if(blocksize > sizeof(buf) ||
|
||||
+ blocksize < (size_t)(aadlen + authenticationtag))
|
||||
+ return 1;
|
||||
+
|
||||
+ cryptlen = (unsigned int)blocksize - aadlen - authenticationtag;
|
||||
|
||||
#if LIBSSH2_AES_GCM
|
||||
/* First block */
|
||||
@@ -17,6 +17,7 @@ SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \
|
||||
file://CVE-2025-15661-2.patch \
|
||||
file://CVE-2025-15661-3.patch \
|
||||
file://CVE-2026-66032.patch \
|
||||
file://CVE-2026-66033.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "d9ec76cbe34db98eec3539fe2c899d26b0c837cb3eb466a56b0f109cabf658f7"
|
||||
|
||||
Reference in New Issue
Block a user