Podatność typu invalid free w funkcji mb_detect_order środowiska uruchomieniowego HHVM może prowadzić do awarii aplikacji lub zdalnego wykonania kodu (RCE). Uzyskała ocenę CVSS 9.8, co klasyfikuje ją jako krytyczną.
▸ Pokaż oryginał (EN)
An invalid free in mb_detect_order can cause the application to crash or potentially result in remote code execution. This issue affects HHVM versions prior to 3.30.12, all versions between 4.0.0 and 4.8.5, all versions between 4.9.0 and 4.23.1, as well as 4.24.0, 4.25.0, 4.26.0, 4.27.0, 4.28.0, and 4.28.1.
Błąd polega na nieprawidłowym zwolnieniu pamięci (invalid free) podczas wywołania funkcji mb_detect_order w HHVM. Tego rodzaju usterka (CWE-763) oznacza, że wskaźnik do pamięci jest zwalniany w sposób niezgodny z logiką alokacji, co może doprowadzić do uszkodzenia sterty (heap corruption). Konsekwencją może być zarówno crash aplikacji, jak i — w sprzyjających warunkach — przejęcie kontroli nad przepływem wykonania przez atakującego i uruchomienie dowolnego kodu.
Atakujący może spowodować awarię (crash) serwera aplikacji lub — w przypadku skutecznego wykorzystania podatności — zdalnie wykonać dowolny kod (RCE) bez uwierzytelnienia i bez interakcji użytkownika.
Należy zaktualizować HHVM do wersji 3.30.12 lub nowszej w gałęzi 3.x, bądź do wersji wyższej niż 4.28.1 w gałęzi 4.x, zgodnie z informacjami opublikowanymi w biuletynie bezpieczeństwa producenta dostępnym pod adresem https://hhvm.com/blog/2019/10/28/security-update.html. Poprawka jest dostępna w repozytorium GitHub HHVM (commit 524d2e60).
Facebook HHVM w wersjach wcześniejszych niż 3.30.12, wszystkich wersjach z przedziału 4.0.0–4.8.5, wszystkich wersjach z przedziału 4.9.0–4.23.1, a także wersjach 4.24.0, 4.25.0, 4.26.0, 4.27.0, 4.28.0 i 4.28.1.
Patch opublikowany przez producenta 28 października 2019 r. (zgodnie z datą wpisu na blogu HHVM), natomiast CVE zostało opublikowane 4 grudnia 2019 r.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hhvm
APPFacebook4.24.04.25.04.26.04.27.04.28.04.28.14.9.0 – 4.23.14.0.0 – 4.8.5< 3.30.12
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
Integer overflow w preg_quote HHVM prowadzący do heap overflow (RCE)
Integer overflow i out-of-bounds write w funkcji ldap_escape HHVM