Podatność w bibliotece WolfSSL polega na odczycie poza granicami bufora (out-of-bounds read) w funkcji MatchDomainName(). Jest groźna, ponieważ może zostać wywołana zdalnie bez uwierzytelnienia, co pozwala na odczyt danych spoza kontrolowanego obszaru pamięci.
▸ Pokaż oryginał (EN)
In function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. If a caller was attempting to do a name check on a non-NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator.This issue affects wolfSSL: through 5.7.0.
Funkcja MatchDomainName() traktuje przekazany parametr str jako ciąg zakończony znakiem NULL, mimo że dane te są dostarczane przez użytkownika i nie podlegają walidacji. Funkcja X509_check_host() przyjmuje wskaźnik oraz długość bufora bez wymogu zakończenia go znakiem NULL. Jeśli wywołujący przekaże bufor niezakończony znakiem NULL, kod będzie odczytywał pamięć poza granicami tablicy wejściowej aż do napotkania takiego znaku. Prowadzi to do klasycznego błędu CWE-125 — out-of-bounds read.
Atakujący może doprowadzić do odczytu danych spoza dozwolonego obszaru pamięci, co może ujawnić wrażliwe informacje lub w skrajnych przypadkach doprowadzić do niestabilności aplikacji. Biorąc pod uwagę maksymalny wynik CVSS 10.0, podatność może mieć krytyczny wpływ na poufność, integralność i dostępność systemu.
Należy zaktualizować bibliotekę WolfSSL do wersji zawierającej poprawkę dostępną w pull request #7604 w repozytorium projektu na GitHub. Jeśli aktualizacja nie jest możliwa, należy upewnić się, że wszelkie dane przekazywane do funkcji X509_check_host() są poprawnie zakończone znakiem NULL po stronie wywołującego.
WolfSSL we wszystkich wersjach do 5.7.0 włącznie
Poprawka została opublikowana w ramach pull request #7604 w oficjalnym repozytorium WolfSSL na GitHub.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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
APPWolfssl≤ 5.7.0
Powiązane podatności
WolfSSL: nieprawidłowa weryfikacja rozmiaru skrótu w certyfikatach ECDSA
If a TLS 1.3 client gets neither a PSK (pre shared key) extension nor a KSE (key share extension) when connect...
In wolfSSL before 5.5.2, if callback functions are enabled (via the WOLFSSL_CALLBACKS flag), then a malicious ...
wolfSSL 5.x before 5.1.1 uses non-random IV values in certain situations. This affects connections (without AE...
wolfSSL 4.6.x through 4.7.x before 4.8.0 does not produce a failure outcome when the serial number in an OCSP ...