Vývojári PHP oznámili zverejnenie urgentných opráv dnes o 17:00 (MSK) na verzie (8.5.12, 8.4.27, 8.3.36 a 8.2.35), v ktorých budú odstránené dve kritické zraniteľnosti. Všetkým administrátorom serverov s PHP sa odporúča ihneď implementovať opravy vo svojich systémoch, hneď ako budú k dispozícii. Oficiálne podrobnosti budú zverejnené až po objavení opráv, ale podľa dostupných informácií sa jedná o zraniteľnosti CVE-2026-109618 a CVE-2026-109619, ktoré potenciálne umožňujú vzdialené vykonanie vlastného kódu na akomkoľvek webovom serveri, ktorý vykonáva PHP skripty v predvolenej konfigurácii. Problémy sa prejavujú vo všetkých verziách od PHP 5.4.
V sieti sa už objavili prototypy exploitov (1, 2) na kontrolu zraniteľností systémov. V poznámke k exploitom sa uvádza, že zraniteľnosti sú spôsobené prístupom k už uvoľnenej pamäti v spracovateľovi sledovania progresu nahrávania súborov na server (session.upload_progress). Na stránke nie je potrebná funkčnosť na nahrávanie súborov na uskutočnenie útoku, stačí automatické spustenie v PHP interpreteri spracovateľa obsahu „multipart/form-data“. Na úspešnú exploitáciu je potrebné určiť rozloženie štruktúr v pamäti procesu, ktoré je špecifické pre každú zostavu (problém sa rieši prechodom v exploite posunov, ktoré boli vopred vypočítané pre balíky z rôznych distribúcií).
Ako obchádzkové opatrenie na ochranu sa objavujú odporúčania nastaviť v php.ini parameter „session.upload_progress.enabled = off“ (alebo „php_admin_flag[session.upload_progress.enabled] = off“ v PHP-FPM), ale zástupca projektu PHP a tiež autor prvého prototypu exploitov tvrdia, že na zablokovanie oboch zraniteľností to nestačí. V poznámke k druhému prototypu exploitov sa uvádza, že okrem horeuvedeného nastavenia v php.ini je potrebné pre zabránenie útoku bez použitia záplaty úplne zablokovať požiadavky s typom obsahu „multipart/form-data“, čo povedie k nemožnosti nahrávať súbory prostredníctvom webových formulárov.
V Apache httpd na zablokovanie multipart požiadaviek môžete použiť nasledujúce pravidlo v mod_rewrite:
RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ — [F,L]
Na zablokovanie v nginx:
if ($http_content_type ~* „multipart“) {
return 403;
}
Na zablokovanie v Caddy:
@multipart header_regexp Content-Type (?i)multipart
respond @multipart 403
Doplnok: Uverejnené opravy vydania PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35, ako aj podrobnosti o opravených kritických zraniteľnostiach. Analýza zraniteľností a oficiálne odporúčané obchádzacie metódy ochrany boli zverejnené v samostatnej správe.
Zdroj: opennet.ru
