CVE-2026-41676
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do spowodowania awarii aplikacji lub potencjalnie do zdalnego wykonania kodu poprzez przepełnienie pamięci, co stanowi poważne zagrożenie dla integralności i dostępności systemu.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę rust-openssl do wersji 0.10.78 lub nowszej. W przypadku korzystania z OpenSSL 1.1.x, rozważ migrację do OpenSSL 3.x, która nie jest podatna na ten problem.
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-45784Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
rust-openssl provides OpenSSL bindings for the Rust programming language. From 0.9.27 to before 0.10.78, Deriver::derive (and PkeyCtxRef::derive) sets len = buf.len() and passes it as the in/out length to EVP_PKEY_derive, relying on OpenSSL to honor it. On OpenSSL 1.1.x, X25519, X448, DH and HKDF-extract ignore the incoming *keylen, unconditionally writing the full shared secret (32/56/prime-size bytes). A caller passing a short slice gets a heap/stack overflow from safe code. OpenSSL 3.x providers do check, so this only impacts older OpenSSL. This vulnerability is fixed in 0.10.78.

