mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-30 23:02:40 +00:00
CVE-2023-5992: A vulnerability was found in OpenSC where PKCS#1 encryption padding removal is not implemented as side-channel resistant. This issue may result in the potential leak of private data. Reference: [https://nvd.nist.gov/vuln/detail/CVE-2023-5992] [https://github.com/OpenSC/OpenSC/wiki/CVE-2023-5992] Upstream patches: [https://github.com/OpenSC/OpenSC/pull/2948] [https://github.com/OpenSC/OpenSC/pull/3016] Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com> Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From 7266f151bb5896b9213d4cf0a298859a53cfb750 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Veronika=20Hanul=C3=ADkov=C3=A1?= <vhanulik@redhat.com>
|
|
Date: Thu, 16 Nov 2023 10:38:12 +0100
|
|
Subject: [PATCH 03/10] pkcs15-sec: Remove logging after PKCS#1 v1.5 depadding
|
|
|
|
To prevent Marvin attack on RSA PKCS#1 v1.5 padding
|
|
when logging the return value, signaling the padding error.
|
|
|
|
CVE: CVE-2023-5992
|
|
Upstream-Status: Backport [https://github.com/OpenSC/OpenSC/pull/2948]
|
|
|
|
Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com>
|
|
---
|
|
src/libopensc/pkcs15-sec.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/libopensc/pkcs15-sec.c b/src/libopensc/pkcs15-sec.c
|
|
index cea46798a..b04856b4d 100644
|
|
--- a/src/libopensc/pkcs15-sec.c
|
|
+++ b/src/libopensc/pkcs15-sec.c
|
|
@@ -308,13 +308,13 @@ int sc_pkcs15_decipher(struct sc_pkcs15_card *p15card,
|
|
|
|
/* Strip any padding */
|
|
if (pad_flags & SC_ALGORITHM_RSA_PAD_PKCS1) {
|
|
- int s = r;
|
|
- int key_size = alg_info->key_length;
|
|
+ unsigned int s = r;
|
|
+ unsigned int key_size = (unsigned int)alg_info->key_length;
|
|
r = sc_pkcs1_strip_02_padding_constant_time(ctx, key_size / 8, out, s, out, &s);
|
|
- LOG_TEST_RET(ctx, r, "Invalid PKCS#1 padding");
|
|
+ /* for keeping PKCS#1 v1.5 depadding constant-time, do not log error here */
|
|
}
|
|
|
|
- LOG_FUNC_RETURN(ctx, r);
|
|
+ return r;
|
|
}
|
|
|
|
/* derive one key from another. RSA can use decipher, so this is for only ECDH
|
|
--
|
|
2.50.0
|
|
|