W serwerze DTLS biblioteki MatrixSSL (wersje 3.8.3 Open – 4.2.1 Open) istnieje podatność heap-based buffer overflow, która może prowadzić do zdalnego wykonania kodu. Błąd jest trywialny do wykorzystania zdalnie, bez uwierzytelnienia i bez interakcji użytkownika, co czyni go wyjątkowo niebezpiecznym.
▸ Pokaż oryginał (EN)
In MatrixSSL 3.8.3 Open through 4.2.1 Open, the DTLS server mishandles incoming network messages leading to a heap-based buffer overflow of up to 256 bytes and possible Remote Code Execution in parseSSLHandshake in sslDecode.c. During processing of a crafted packet, the server mishandles the fragment length value provided in the DTLS message.
Podczas przetwarzania przychodzącego pakietu DTLS serwer nieprawidłowo obsługuje wartość długości fragmentu (fragment length) zawartą w wiadomości DTLS handshake. Funkcja parseSSLHandshake w pliku sslDecode.c nie weryfikuje poprawnie tej wartości, co prowadzi do zapisu poza granicami przydzielonego bufora na stercie (heap) — nadpisywane może zostać nawet 256 bajtów. Osoba atakująca może spreparować odpowiedni pakiet DTLS i wysłać go do serwera bez żadnego uwierzytelnienia.
Atakujący może doprowadzić do wykonania dowolnego kodu na serwerze (RCE), uzyskując tym samym pełną kontrolę nad podatnym systemem, lub spowodować jego awarię (denial of service).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jeśli aktualizacja nie jest natychmiast możliwa, należy rozważyć wyłączenie obsługi DTLS lub odizolowanie serwera od niezaufanego ruchu sieciowego na poziomie firewall.
MatrixSSL w wersjach od 3.8.3 Open do 4.2.1 Open (wariant Open Source), komponent serwera DTLS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HMatrixssl
APPMatrixssl3.8.2 – 4.2.1
Powiązane podatności
MatrixSSL: odczyt poza granicami bufora podczas przetwarzania ASN.1
Stack-based buffer overflow w MatrixSSL podczas weryfikacji certyfikatu X.509
Heap buffer overflow w parsowaniu certyfikatów X.509 w MatrixSSL
Przepełnienie bufora heap w parsowaniu certyfikatów X509 w MatrixSSL
Heap-based buffer overflow w MatrixSSL via pole Subject Alt Name certyfikatu X.509