CVE-2026-33846
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 68 - wyżej niż 68% wszystkich znanych CVE
Streszczenie
W bibliotece GnuTLS wykryto podatność przepełnienia bufora sterty w logice składania fragmentów uzgadniania DTLS. Problem występuje w funkcji merge_handshake_packet(), która dopasowuje i scala fragmenty na podstawie samego typu uzgadniania, bez weryfikacji spójności pola message_length we wszystkich fragmentach tego samego komunikatu. Atakujący może zdalnie, bez uwierzytelniania, wysłać spreparowane fragmenty DTLS z różnymi wartościami message_length, co prowadzi do zapisu poza przydzielonym buforem.
Ocena ryzyka
Podatność umożliwia zdalne wykonanie kodu lub wywołanie awarii aplikacji poprzez manipulację fragmentami uzgadniania DTLS, co może prowadzić do naruszenia poufności, integralności lub dostępności systemu.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę GnuTLS do wersji, w której usunięto tę podatność. Do czasu aktualizacji zaleca się ograniczenie dostępu do usług wykorzystujących DTLS oraz monitorowanie ruchu sieciowego pod kątem podejrzanych fragmentów uzgadniania.
Inne podatności w GnuTLS
Zobacz wszystkie- CVE-2016-4456Wysokie
Zmienna środowiskowa 'GNUTLS_KEYLOGFILE' w gnutls 3.4.12 pozwala zdalnym atakującym na nadpisywanie i uszkadzanie dowolnych plików w systemie plików.
- CVE-2017-7507Wysokie
GnuTLS w wersji 3.5.12 i wcześniejszych jest podatny na dereferencję wskaźnika NULL podczas dekodowania odpowiedzi statusowej w rozszerzeniu TLS z poprawnymi danymi. Może to prowadzić do awarii aplikacji serwera GnuTLS.
- CVE-2017-7869Wysokie
GnuTLS przed 20 lutego 2017 roku ma problem z zapisem poza granicami, spowodowany przepełnieniem całkowitym oraz przepełnieniem bufora w pamięci związanym z funkcją cdk_pkt_read w pliku opencdk/read-packet.c. Problem ten jest częścią raportu GNUTLS-SA-2017-3 dostarczonego przez dostawcę i został naprawiony w wersji 3.5.10.
- CVE-2017-5335Wysokie
Funkcje odczytu strumieni w lib/opencdk/read-packet.c w GnuTLS przed wersją 3.3.26 oraz 3.5.x przed wersją 3.5.8 umożliwiają zdalnym atakującym spowodowanie odmowy usługi (błąd braku pamięci i awaria) poprzez spreparowany certyfikat OpenPGP.
- CVE-2016-7444Wysokie
Funkcja gnutls_ocsp_resp_check_crt w GnuTLS przed wersją 3.4.15 oraz 3.5.x przed wersją 3.5.4 nie weryfikuje długości numeru seryjnego odpowiedzi OCSP, co może umożliwić zdalnym atakującym ominięcie mechanizmu walidacji certyfikatów.
- CVE-2015-3308Wysokie
Podatność typu double free w lib/x509/x509_ext.c w GnuTLS przed wersją 3.3.14 umożliwia zdalnym atakującym spowodowanie odmowy usługi lub potencjalnie innych nieokreślonych skutków poprzez spreparowany punkt dystrybucji CRL.
- CVE-2024-28834Średnie
W GnuTLS wykryto podatność kryptograficzną znaną jako atak Minerva. Wykorzystuje ona deterministyczne zachowanie GnuTLS, prowadząc do wycieków informacji przez kanały boczne. W szczególnych scenariuszach, np. przy użyciu flagi GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE, może wystąpić zauważalny krok w wartości nonce.
- CVE-2017-5337Krytyczne
Wielokrotne przepełnienia bufora na stercie w funkcji read_attribute w GnuTLS przed wersją 3.3.26 oraz 3.5.x przed wersją 3.5.8 mogą umożliwić zdalnym atakującym wywołanie nieokreślonego wpływu poprzez spreparowany certyfikat OpenPGP.
- CVE-2017-5336Krytyczne
W funkcji cdk_pk_get_keyid w pliku lib/opencdk/pubkey.c w GnuTLS przed wersją 3.3.26 oraz 3.5.x przed wersją 3.5.8 występuje przepełnienie bufora na stosie. Umożliwia to zdalnym atakującym wywołanie nieokreślonego wpływu poprzez spreparowany certyfikat OpenPGP.
- CVE-2017-5334Krytyczne
Podatność typu double free w funkcji gnutls_x509_ext_import_proxy w GnuTLS przed wersją 3.3.26 oraz 3.5.x przed wersją 3.5.8 pozwala zdalnym atakującym na wywołanie nieokreślonego wpływu poprzez spreparowane informacje o języku polityki w certyfikacie X.509 z rozszerzeniem Proxy Certificate Information.
Oryginalny opis (angielski, źródło NVD)
A heap buffer overflow vulnerability exists in the DTLS handshake fragment reassembly logic of GnuTLS. The issue arises in merge_handshake_packet() where incoming handshake fragments are matched and merged based solely on handshake type, without validating that the message_length field remains consistent across all fragments of the same logical message. An attacker can exploit this by sending crafted DTLS fragments with conflicting message_length values, causing the implementation to allocate a buffer based on a smaller initial fragment and subsequently write beyond its bounds using larger, inconsistent fragments. Because the merge operation does not enforce proper bounds checking against the allocated buffer size, this results in an out-of-bounds write on the heap. The vulnerability is remotely exploitable without authentication via the DTLS handshake path and can lead to application crashes or potential memory corruption.

