forked from Lainports/freebsd-ports
security/openssl30: Security fix for CVE-2023-2975
Security: 41c60e16-2405-11ee-a0d1-84a93843eb75
This commit is contained in:
parent
0d5cbaaa31
commit
992c6f8ea8
2 changed files with 56 additions and 1 deletions
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= openssl
|
||||
DISTVERSION= 3.0.9
|
||||
PORTVERSION= 3.0.9
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= security devel
|
||||
MASTER_SITES= https://www.openssl.org/source/ \
|
||||
ftp://ftp.cert.dfn.de/pub/tools/net/openssl/source/
|
||||
|
|
|
|||
54
security/openssl30/files/patch-CVE-2023-2975
Normal file
54
security/openssl30/files/patch-CVE-2023-2975
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
From 00e2f5eea29994d19293ec4e8c8775ba73678598 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Mraz <tomas@openssl.org>
|
||||
Date: Tue, 4 Jul 2023 17:30:35 +0200
|
||||
Subject: [PATCH] Do not ignore empty associated data with AES-SIV mode
|
||||
|
||||
The AES-SIV mode allows for multiple associated data items
|
||||
authenticated separately with any of these being 0 length.
|
||||
|
||||
The provided implementation ignores such empty associated data
|
||||
which is incorrect in regards to the RFC 5297 and is also
|
||||
a security issue because such empty associated data then become
|
||||
unauthenticated if an application expects to authenticate them.
|
||||
|
||||
Fixes CVE-2023-2975
|
||||
|
||||
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/21384)
|
||||
|
||||
(cherry picked from commit c426c281cfc23ab182f7d7d7a35229e7db1494d9)
|
||||
---
|
||||
.../implementations/ciphers/cipher_aes_siv.c | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/ciphers/cipher_aes_siv.c b/providers/implementations/ciphers/cipher_aes_siv.c
|
||||
index 45010b90db2a..b396c8651a32 100644
|
||||
--- providers/implementations/ciphers/cipher_aes_siv.c.orig
|
||||
+++ providers/implementations/ciphers/cipher_aes_siv.c
|
||||
@@ -120,14 +120,18 @@ static int siv_cipher(void *vctx, unsigned char *out, size_t *outl,
|
||||
if (!ossl_prov_is_running())
|
||||
return 0;
|
||||
|
||||
- if (inl == 0) {
|
||||
- *outl = 0;
|
||||
- return 1;
|
||||
- }
|
||||
+ /* Ignore just empty encryption/decryption call and not AAD. */
|
||||
+ if (out != NULL) {
|
||||
+ if (inl == 0) {
|
||||
+ if (outl != NULL)
|
||||
+ *outl = 0;
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- if (outsize < inl) {
|
||||
- ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL);
|
||||
- return 0;
|
||||
+ if (outsize < inl) {
|
||||
+ ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL);
|
||||
+ return 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (ctx->hw->cipher(ctx, out, in, inl) <= 0)
|
||||
Loading…
Add table
Reference in a new issue