Podatność typu out-of-bounds write w funkcji tsip_StoreMessage() biblioteki WolfSSL dotyczy wyłącznie konfiguracji korzystających z portu Renesas TSIP dla TLS 1.3. Błąd umożliwia zdalne uszkodzenie stanu sterty (heap) i może prowadzić do zdalnego denial of service (crash) urządzenia.
▸ Pokaż oryginał (EN)
Out-of-bounds write in the Renesas TSIP TLS 1.3 transcript buffer. In tsip_StoreMessage() the capacity check guarding the fixed message bag (MSGBAG_SIZE) sets an error code but fails to return, so execution falls through to an XMEMCPY that writes past the end of the buffer once the accumulated TLS 1.3 handshake transcript exceeds MSGBAG_SIZE (8 KB), corrupting adjacent heap state and potentially causing a remote denial of service crash. The bag is sized to hold a normal handshake, so this is reached only by an unusually large but valid certificate chain, or by a malicious or man-in-the-middle server sending an oversized handshake message to a client that does not strictly verify the chain. This only affects builds using the Renesas TSIP TLS port (WOLFSSL_RENESAS_TSIP_TLS) as a TLS 1.3 client on Renesas MCUs with TSIP hardware enabled, and is rated High within those builds. All other configurations are unaffected.
W funkcji tsip_StoreMessage() sprawdzenie pojemności stałego bufora MSGBAG_SIZE (8 KB) ustawia kod błędu, lecz nie przerywa dalszego wykonania instrukcją return. W efekcie sterowanie przechodzi do wywołania XMEMCPY, które zapisuje dane poza granicą bufora, gdy łączny rozmiar transkryptu handshake TLS 1.3 przekroczy 8 KB. Sytuacja ta może wystąpić przy wyjątkowo dużym, lecz prawidłowym łańcuchu certyfikatów lub gdy złośliwy bądź pośredniczący serwer (man-in-the-middle) prześle klientowi ponadwymiarową wiadomość handshake. Skutkiem jest korupcja sąsiednich obszarów sterty.
Atakujący może zdalnie doprowadzić do awarii (crash) urządzenia działającego jako klient TLS 1.3, powodując odmowę usługi. Możliwa jest również korupcja stanu sterty, której dalsze konsekwencje zależą od konkretnej implementacji.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Poprawka dostępna w pull requeście: https://github.com/wolfSSL/wolfssl/pull/10705. Szczegóły dostępne w oficjalnym biuletynie bezpieczeństwa WolfSSL: https://www.wolfssl.com/docs/security-vulnerabilities/
Wyłącznie kompilacje WolfSSL z włączonym portem Renesas TSIP dla TLS 1.3 (WOLFSSL_RENESAS_TSIP_TLS), działające jako klient TLS 1.3 na mikrokontrolerach Renesas z włączonym sprzętowym modułem TSIP. Wszystkie inne konfiguracje WolfSSL nie są podatne.
Podatność dotyczy bardzo wąskiej grupy wdrożeń — wyłącznie urządzeń Renesas MCU z aktywnym sprzętowym blokiem TSIP i biblioteką WolfSSL skonfigurowaną jako klient TLS 1.3 z flagą WOLFSSL_RENESAS_TSIP_TLS. Standardowe wdrożenia WolfSSL na innych platformach nie są zagrożone.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XWolfssl
APPWolfssl5.4.0 – 5.9.2 (bez)
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: heap buffer over-read przy włączonej fladze WOLFSSL_CALLBACKS
wolfSSL: nielosowe wartości IV w połączeniach TLS/DTLS (AES-CBC, DES3)