W bibliotece wolfSSL przed wersją 5.5.2 złośliwy klient TLS 1.3 lub atakujący sieciowy może wywołać odczyt poza granicami bufora sterty (heap buffer over-read) o 5 bajtów, gdy aktywna jest flaga WOLFSSL_CALLBACKS. Podatność jest krytyczna ze względu na możliwość nieautoryzowanego ujawnienia danych oraz wywołania odmowy usługi bez konieczności uwierzytelnienia.
▸ Pokaż oryginał (EN)
In wolfSSL before 5.5.2, if callback functions are enabled (via the WOLFSSL_CALLBACKS flag), then a malicious TLS 1.3 client or network attacker can trigger a buffer over-read on the heap of 5 bytes. (WOLFSSL_CALLBACKS is only intended for debugging.)
Flaga WOLFSSL_CALLBACKS jest mechanizmem przeznaczonym wyłącznie do celów diagnostycznych i debugowania. Gdy jest ona włączona, biblioteka rejestruje wywołania zwrotne (callback) podczas handshake TLS 1.3. Atakujący — będący złośliwym klientem TLS 1.3 lub podmiotem przechwytującym ruch sieciowy — może wysłać specjalnie spreparowane dane, powodując odczyt 5 bajtów poza granicami przydzielonego bufora na stercie (CWE-125). Błąd nie wymaga żadnego uwierzytelnienia ani interakcji po stronie użytkownika.
Atakujący może uzyskać nieuprawniony dostęp do fragmentów pamięci sterty (ujawnienie poufnych danych) oraz potencjalnie doprowadzić do awarii aplikacji korzystającej z biblioteki (odmowa usługi). Wektor sieciowy i brak wymagań uwierzytelnienia znacząco zwiększają ryzyko.
Należy zaktualizować wolfSSL do wersji 5.5.2 lub nowszej (dostępnej pod adresem https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.2-stable). Jako natychmiastowe obejście — jeśli aktualizacja nie jest możliwa — należy wyłączyć flagę kompilacji WOLFSSL_CALLBACKS, która i tak jest przeznaczona wyłącznie do debugowania i nie powinna być aktywna w środowiskach produkcyjnych.
wolfSSL w wersjach przed 5.5.2, wyłącznie gdy aplikacja została skompilowana z włączoną flagą WOLFSSL_CALLBACKS.
Flaga WOLFSSL_CALLBACKS jest według dokumentacji producenta przeznaczona wyłącznie do celów debugowania — jej obecność w środowisku produkcyjnym stanowi błąd konfiguracyjny. Podatność została opisana publicznie przez Trail of Bits (blog.trailofbits.com) oraz opublikowana w serwisach Packet Storm Security i Full Disclosure w styczniu 2023 r.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HWolfssl
APPWolfssl< 5.5.2
Powiązane podatności
WolfSSL: nieprawidłowa weryfikacja rozmiaru skrótu w certyfikatach ECDSA
WolfSSL: odczyt poza granicami bufora w funkcji MatchDomainName()
WolfSSL TLS 1.3: przewidywalny klucz sesji przez brak PSK/KSE
wolfSSL: nielosowe wartości IV w połączeniach TLS/DTLS (AES-CBC, DES3)
wolfSSL: brak weryfikacji numeru seryjnego w odpowiedzi OCSP