PHP-s avast on tuvastatud haavatavus (CVE-2024-4577), mis võimaldab käivitada oma koodi serveris või vaadata PHP-skripti lähtekoodi, kui PHP-d kasutatakse CGI-režiimis Windowsi platvormil (konfiguratsioonid mod_php, php-fpm ja FastCGI ei ole haavatavad). Probleem on lahendatud PHP versioonides 8.3.8, 8.2.20 ja 8.1.29.
Haavatavus on erijuhtum 2012. aastal parandatud probleemist CVE-2012-1823, mille jaoks osutunud kaitse ei olnud piisav rünnaku blokimiseks Windowsi platvormil. Rünnaku meetod seisneb käsurea argumentide asendamise võimaluses PHP-interpretatsiooni käivitamisel PHP-skripti päringuparametrite manipuleerimise kaudu.
Vanad haavatavus CVE-2012-1823 võimaldas exploitida, lihtsalt määrates käsurida valikud küsimusparameetrite asemel, näiteks «http://localhost/index.php?-s» skripti lähtekoodi näitamiseks. Uus haavatavus põhineb sellel, et Windowsi platvorm tagab automaatse sümbolite teisendamise, mis võimaldab varasemalt lisatud kaitse ümbersuunamiseks määrata sümboleid, mis esinevad teatud kodeeringutes ja asendatakse sümboliga «-» (näiteks http://localhost/index.php?s).
Haavatavus on kinnitatud konfiguratsioonides, kus kasutatakse traditsioonilise Hiina (cp950), lihtsustatud Hiina (cp936) ja jaapani (cp932) keeli, kuid selle ilmnemine on võimalik ka teiste lokaliseerimistega. Probleem ilmneb vaikimisi XAMPP koosseisus (Apache + MariaDB + PHP + Perl) ning igasugustes Apache konfiguratsioonides, kus php-cgi on määratud CGI-skripti töötlejana seadistuse kaudu.
‘Action cgi-script „/cgi-bin/php-cgi.exe“‘ või ‘Action application/x-httpd-php-cgi „/php-cgi/php-cgi.exe“‘, või kui php tõlgendaja paigutati otse „/cgi-bin“ kausta ja igates muus kaustas, kus CGI-skriptide täitmine on lubatud direktiivi ScriptAlias kaudu.
Lisaks on PHP versioonides 8.3.8, 8.2.20 ja 8.1.29 kõrvaldatud veel kolm haavatavust:
- CVE-2024-5458 — võimalus filtri ümbersuunamiseks
FILTER_VALIDATE_URL, mida kasutatakse filter_var funktsiooni juurde kutsumisel. - CVE-2024-5585 — alternatiivne rünnaku vektor haavatavusele CVE-2024-1874, mis võimaldab kõrvale hiilida varasemalt lisatud kaitset ja teha käsu asendusi bat- ja cmd-failide väljakutsumisel funktsiooni proc_open kaudu Windowsi platvormil (haavatavus BatBadBut).
- openssl_private_decrypt funktsiooni haavatavus Marvin rünnaku vastu.
Allikas: opennet.ru
