Podatność use-after-free w bibliotece OpenSSL pozwala atakującemu na wywołanie niestabilności procesu lub potencjalnie remote code execution poprzez przesłanie spreparowanej wiadomości PKCS#7 lub S/MIME. Wysoki wynik CVSS 9.8 odzwierciedla brak wymagań dotyczących uwierzytelnienia oraz sieciowy wektor ataku.
▸ Pokaż oryginał (EN)
Issue summary: A specially crafted PKCS#7 or S/MIME signed message could trigger a use-after-free during PKCS#7 signature verification. Impact summary: A use-after-free may result in process crashes, heap corruption, or potentially remote code execution. When processing a PKCS#7 or S/MIME signed message, if the SignedData digestAlgorithms field is present as an empty ASN.1 SET, OpenSSL may incorrectly free a caller-owned BIO during PKCS7_verify(). A subsequent use of the BIO by the calling application results in a use-after-free condition. In the common case this occurs when the application later calls BIO_free() on the BIO originally passed to PKCS7_verify(). Depending on allocator behavior and application-specific BIO usage patterns, this may result in a crash or other memory corruption. In some application contexts this may potentially be exploitable for remote code execution. Applications that process PKCS#7 or S/MIME signed messages using OpenSSL PKCS#7 APIs may be affected. Applications using the CMS APIs for this processing are not affected. The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.
Podczas przetwarzania podpisanej wiadomości PKCS#7 lub S/MIME, jeśli pole SignedData digestAlgorithms jest obecne jako pusty zbiór ASN.1 SET, OpenSSL nieprawidłowo zwalnia obiekt BIO należący do wywołującego podczas wykonywania funkcji PKCS7_verify(). Gdy aplikacja następnie wywołuje BIO_free() na tym samym obiekcie BIO, dochodzi do użycia już zwolnionego obszaru pamięci (use-after-free). W zależności od zachowania alokatora pamięci i sposobu użycia BIO przez aplikację, może to prowadzić do awarii procesu, uszkodzenia sterty (heap corruption) lub — w niektórych kontekstach — do remote code execution.
Atakujący może doprowadzić do awarii aplikacji przetwarzającej wiadomości PKCS#7/S/MIME, uszkodzenia pamięci sterty lub potencjalnie do zdalnego wykonania kodu (RCE) w podatnych aplikacjach. Aplikacje korzystające z interfejsu CMS API nie są podatne.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — commity naprawcze zostały opublikowane w repozytorium openssl/security. Zaleca się niezwłoczną aktualizację OpenSSL do wersji zawierającej poprawkę oraz weryfikację, czy aplikacje korzystają z podatnego PKCS#7 API (a nie z CMS API).
Aplikacje wykorzystujące OpenSSL PKCS#7 API do przetwarzania podpisanych wiadomości PKCS#7 lub S/MIME. Moduły FIPS w wersjach OpenSSL 4.0, 3.6, 3.5, 3.4 oraz 3.0 nie są podatne, ponieważ podatny kod leży poza granicą modułu FIPS. Aplikacje korzystające z CMS API nie są dotknięte problemem.
Podatność dotyczy wyłącznie aplikacji korzystających z PKCS#7 API — aplikacje używające CMS API do tych samych operacji nie są zagrożone. Moduły FIPS we wskazanych wersjach OpenSSL również pozostają poza zakresem podatności.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HOpenSSL
APPOpenssl4.0.01.1.1 – 1.1.1zh (bez)3.0.0 – 3.0.21 (bez)1.0.2 – 1.0.2zq (bez)3.5.0 – 3.5.7 (bez)3.6.0 – 3.6.3 (bez)3.4.0 – 3.4.6 (bez)
Powiązane podatności
OpenSSL CMS AuthEnvelopedData — niewystarczająca walidacja wejścia umożliwia atak oracle i bypass integralnośc...
OpenSSL: heap buffer overflow przy konwersji OCTET STRING na hex (32-bit)
The OpenSSL 3.0.4 release introduced a serious bug in the RSA implementation for X86_64 CPUs supporting the AV...
In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt()....
An issue was discovered in openfortivpn 1.11.0 when used with OpenSSL before 1.0.2. tunnel.c mishandles certif...