Podatność w bibliotece wolfSSL powoduje użycie przewidywalnego bufora jako materiału kluczowego (IKM) podczas generowania głównego klucza sesji TLS 1.3, gdy serwer nie dostarczy rozszerzenia PSK ani KSE. Skutkuje to możliwością odtworzenia klucza sesji przez podsłuchującego, co kompromituje poufność i integralność komunikacji.
▸ Pokaż oryginał (EN)
If a TLS 1.3 client gets neither a PSK (pre shared key) extension nor a KSE (key share extension) when connecting to a malicious server, a default predictable buffer gets used for the IKM (Input Keying Material) value when generating the session master secret. Using a potentially known IKM value when generating the session master secret key compromises the key generated, allowing an eavesdropper to reconstruct it and potentially allowing access to or meddling with message contents in the session. This issue does not affect client validation of connected servers, nor expose private key information, but could result in an insecure TLS 1.3 session when not controlling both sides of the connection. wolfSSL recommends that TLS 1.3 client side users update the version of wolfSSL used.
Gdy klient TLS 1.3 korzystający z wolfSSL łączy się ze złośliwym (lub nieprawidłowo skonfigurowanym) serwerem, który nie zwraca rozszerzenia PSK (pre-shared key) ani KSE (key share extension), biblioteka zamiast bezpiecznego materiału kluczowego używa domyślnego, przewidywalnego bufora jako wartości IKM (Input Keying Material). Wartość IKM jest następnie używana do wyprowadzenia głównego klucza sesji. Jeśli atakujący zna lub może przewidzieć wartość IKM, jest w stanie samodzielnie odtworzyć klucz sesji. Posiadając klucz sesji, napastnik będący w pozycji podsłuchującego (eavesdropper) może odszyfrować lub modyfikować treść przesyłanych wiadomości.
Atakujący może odtworzyć klucz główny sesji TLS 1.3 i uzyskać dostęp do treści szyfrowanej komunikacji lub ją modyfikować. Podatność nie ujawnia prywatnych kluczy serwera ani nie wpływa na weryfikację tożsamości serwera przez klienta.
Producent wolfSSL zaleca aktualizację biblioteki po stronie klientów TLS 1.3. Należy zastosować patche dostępne u producenta zgodnie z referencjami (pull request #6412 w repozytorium wolfSSL oraz strona https://www.wolfssl.com/docs/security-vulnerabilities/).
Klienci TLS 1.3 korzystający z biblioteki wolfSSL — wersje wskazane w referencjach producenta (wolfSSL Security Vulnerabilities oraz pull request #6412 na GitHub).
Podatność dotyczy wyłącznie scenariusza, w którym klient wolfSSL łączy się z serwerem niezwracającym rozszerzenia PSK ani KSE — sytuacja możliwa przy połączeniu ze złośliwym serwerem. Podatność nie pozwala na ujawnienie prywatnych kluczy ani na obejście weryfikacji serwera przez klienta.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HWolfssl
APPWolfssl< 5.6.2
Powiązane podatności
WolfSSL: nieprawidłowa weryfikacja rozmiaru skrótu w certyfikatach ECDSA
WolfSSL: odczyt poza granicami bufora w funkcji MatchDomainName()
wolfSSL: heap buffer over-read przy włączonej fladze WOLFSSL_CALLBACKS
wolfSSL: nielosowe wartości IV w połączeniach TLS/DTLS (AES-CBC, DES3)
wolfSSL: brak weryfikacji numeru seryjnego w odpowiedzi OCSP