PHP-s avast (CVE-2024-4577) võimaldab serveris oma koodi käivitada või PHP skripti lähtekoodi vaadata, juhul kui PHP-d kasutatakse CGI režiimis Windowsi platvormil (mod_php, php-fpm ja FastCGI konfiguratsioonid ei ole haavatavad). Probleem on lahendatud PHP versioonides 8.3.8, 8.2.20 ja 8.1.29.
Avastus on eriline juhtum parandatud probleemist CVE-2012-1823, mille jaoks osutunud kaitse Windowsi platvormil rünnaku blokeerimiseks ebapiisavaks. Rünnaku meetod seisneb võimaluses lisada käsurea argument PHP tõlgendaja käivitamisel PHP skripti päringuparametrite manipuleerimise kaudu.
Vanast haavatavusest CVE-2012-1823 piisab, kui kasutada käsurea valikuid päringu parameetrite asemel, näiteks "http://localhost/index.php?-s" skripti allika koodi kuvamiseks. Uus haavatavus põhineb sellel, et Windowsi platvorm tagab automaatse sümbolite teisendamise, mis võimaldab eelnevalt lisatud kaitset ületada, kasutades sümboleid, mis esinevad teatud kodeeringutes ja asendatakse sümboliga „-” (näiteks http://localhost/index.php?s).
Haavatavus on kinnitatud traditsioonilise hiina (cp950), lihtsustatud hiina (cp936) ja jaapani (cp932) keelte lokaliseerimiste konfiguratsioonides, kuid ei välistata selle esinemist ka teiste lokaliseerimistega. Probleem avaldub vaikimisi XAMPP komplekteerimisel (Apache + MariaDB + PHP + Perl), samuti kõikides Apache konfiguratsioonides, kus php-cgi on seatud CGI skriptide töötlejaks seadistusega
‘Action cgi-script «/cgi-bin/php-cgi.exe»‘ või ‘Action application/x-httpd-php-cgi «/php-cgi/php-cgi.exe»‘, või PHP tõlgendus otse «/cgi-bin»-is ja muudes kataloogides, kus CGI skriptide käitamine on lubatud läbi ScriptAlias direktiivi.
Lisaks on PHP versioonides 8.3.8, 8.2.20 ja 8.1.29 parandatud veel kolm haavatavust:
- CVE-2024-5458 — filtreerimise ümbersõidu võimalus
FILTER_VALIDATE_URL, mida kasutatakse funktsiooni filter_var kutsumisel. - CVE-2024-5585 — alternatiivne rünnakutee haavatavusele CVE-2024-1874, mis võimaldab varem lisatud kaitse mööda minna ning käskude sisestamine bat- ja cmd-failide kutsumisel Windowsi platvormil (haavatavus BatBadBut).
- openssl_private_decrypt funktsiooni haavatavus rünnakute vastu Marvin.
Allikas: opennet.ru
