Nieprawidłowe obliczenie rozmiaru w funkcji ldap_escape środowiska wykonawczego HHVM może prowadzić do przepełnienia liczby całkowitej (integer overflow), a w konsekwencji do zapisu poza granicami bufora (out-of-bounds write). Podatność ma ocenę CVSS 9.8 (CRITICAL) i umożliwia atakującemu zdalne wykonanie kodu bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
An incorrect size calculation in ldap_escape may lead to an integer overflow when overly long input is passed in, resulting in an out-of-bounds write. This issue affects HHVM prior to 4.56.2, all versions between 4.57.0 and 4.78.0, 4.79.0, 4.80.0, 4.81.0, 4.82.0, 4.83.0.
Gdy do funkcji ldap_escape przekazywane jest wyjątkowo długie dane wejściowe, błędne obliczenie rozmiaru powoduje integer overflow. W wyniku tego alokowany jest zbyt mały bufor, a następnie dane są zapisywane poza jego granicami (heap-based buffer overflow, CWE-122, CWE-787). Taki zapis poza przydzieloną pamięcią może zostać wykorzystany przez atakującego do przejęcia kontroli nad przepływem wykonania programu.
Atakujący może zdalnie, bez uwierzytelnienia, doprowadzić do wykonania dowolnego kodu (RCE) na serwerze z uruchomionym HHVM lub do jego destabilizacji. Skutkuje to pełnym naruszeniem poufności, integralności oraz dostępności systemu.
Należy zaktualizować HHVM do wersji 4.56.2 lub nowszej (dla gałęzi 4.56.x) oraz do wersji wyższej niż 4.83.0 dla pozostałych gałęzi, zgodnie z aktualizacją bezpieczeństwa opublikowaną przez producenta: https://hhvm.com/blog/2020/11/12/security-update.html. Dostępna jest również łatka w repozytorium GitHub projektu.
Facebook HHVM we wszystkich wersjach wcześniejszych niż 4.56.2, we wszystkich wersjach między 4.57.0 a 4.78.0 włącznie, oraz w wersjach 4.79.0, 4.80.0, 4.81.0, 4.82.0 i 4.83.0.
Aktualizacja bezpieczeństwa została opublikowana przez producenta 12 listopada 2020 roku (https://hhvm.com/blog/2020/11/12/security-update.html), natomiast wpis CVE ukazał się 10 marca 2021 roku.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hhvm
APPFacebook4.79.04.80.04.81.04.82.04.83.04.57.0 – 4.78.1 (bez)< 4.56.2
Powiązane podatności
HHVM: użycie przestarzałego protokołu TLS 1.0 zamiast TLS 1.3
RCE poprzez integer overflow w IOBuf w Facebook Folly i HHVM
Use-after-free w Facebook HHVM podczas deserializacji obiektów z dynamicznymi właściwościami
Out-of-bounds write w HHVM podczas przetwarzania danych EXIF
Integer overflow w preg_quote HHVM prowadzący do heap overflow (RCE)