CVE-2026-45784
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
Podatność w rust-openssl od wersji 0.10.50 do 0.10.80. Funkcja `CipherCtxRef::cipher_update_inplace` nieprawidłowo określa rozmiar bufora wyjściowego dla szyfrów AES key-wrap-with-padding (`EVP_aes_{128,192,256}_wrap_pad`), co przy długości wejścia niebędącej wielokrotnością 8 powoduje zapis do 7 bajtów poza buforem, prowadząc do uszkodzenia sterty.
Ocena ryzyka
Atakujący kontrolujący długość plaintextu może spowodować uszkodzenie sterty (heap corruption), co może prowadzić do crasha lub potencjalnie do wykonania kodu.
Rekomendacja
Zaktualizuj rust-openssl do wersji 0.10.80 lub nowszej. Unikaj używania szyfrów AES key-wrap-with-padding z niezaufanymi danymi.
Inne podatności w rust-openssl
Zobacz wszystkie- CVE-2026-42327Wysokie
W bibliotece rust-openssl, wersje od 0.9.7 do przed 0.10.79, występuje podatność związana z nieprawidłowym przetwarzaniem adresów URL responderów OCSP z rozszerzenia AIA certyfikatu. Użycie nieprawidłowych bajtów w lokalizacji dostępu OCSP może prowadzić do naruszenia zasady UTF-8, co skutkuje nieokreślonym zachowaniem.
- CVE-2026-41898Średnie
Podatność w bibliotece rust-openssl (wersje od 0.9.24 do 0.10.78) powoduje, że funkcje zwrotne dla PSK i cookie nie sprawdzają wartości zwracanej przez domknięcie użytkownika względem rozmiaru bufora. Może to prowadzić do przepełnienia bufora i innych nieprzewidzianych konsekwencji.
- CVE-2026-41681Wysokie
W bibliotece rust-openssl w wersjach od 0.10.39 do 0.10.77 występuje podatność na przepełnienie bufora w funkcji EVP_DigestFinal(). Funkcja ta zawsze zapisuje dane o rozmiarze EVP_MD_CTX_size(ctx) do bufora wyjściowego, co przy mniejszym buforze prowadzi do zapisu poza jego granicami i potencjalnego uszkodzenia stosu. Problem jest osiągalny z bezpiecznego kodu Rust.
- CVE-2026-41678Wysokie
W bibliotece rust-openssl w wersjach przed 0.10.78 wykryto błędne sprawdzenie warunku w funkcji aes::unwrap_key(). Asercja sprawdza out.len() + 8 <= in_.len(), podczas gdy poprawny warunek to out.len() >= in_.len() - 8. Powoduje to zapis poza dozwolonym obszarem bufora wyjściowego przy użyciu mniejszego bufora.
- CVE-2026-41676Wysokie
W bibliotece rust-openssl w wersjach od 0.9.27 do 0.10.77 występuje podatność na przepełnienie pamięci (sterty/stosu) podczas wywoływania funkcji Deriver::derive i PkeyCtxRef::derive. Problem dotyczy starszych wersji OpenSSL (1.1.x), gdzie funkcja EVP_PKEY_derive ignoruje przekazany rozmiar bufora i zapisuje cały współdzielony sekret, co może prowadzić do przepełnienia nawet przy bezpiecznym kodzie.
Oryginalny opis (angielski, źródło NVD)
rust-openssl provides OpenSSL bindings for the Rust programming language. From 0.10.50 until 0.10.80, CipherCtxRef::cipher_update_inplace in openssl/src/cipher_ctx.rs incorrectly sized output buffers when used with AES key-wrap-with-padding ciphers EVP_aes_{128,192,256}_wrap_pad. For a non-multiple-of-8 input, OpenSSL writes up to 7 bytes past the end of the caller's buffer or Vec, producing attacker-controllable heap corruption when the plaintext length is attacker-influenced. This issue is fixed in version 0.10.80.

