Vývojáři PHP dnes oznámili vydání naléhavých oprav (8.5.12, 8.4.27, 8.3.36 a 8.2.35) ve 17:00 (MSK), které odstraní dvě kritické zranitelnosti. Všem administrátorům serverů s PHP se doporučuje okamžitě nainstalovat opravy na svých systémech po jejich vydání. Oficiální detaily budou odhaleny až po vydání oprav, ale podle dostupných informací se jedná o zranitelnosti CVE-2026-109618 a CVE-2026-109619, které potenciálně umožňují vzdálené spuštění kódu na jakémkoliv webovém serveru, který vykonává PHP skripty v defaultní konfiguraci. Problémy se projevují ve všech verzích s PHP od 5.4.
Na síti již byly zveřejněny prototypy exploitů (1, 2) pro kontrolu zranitelnosti systémů. V poznámce k exploitu se uvádí, že zranitelnosti jsou způsobeny přístupem k již uvolněné paměti v handleru sledování průběhu nahrávání souborů na server (session.upload_progress). Není třeba mít na stránce funkčnost pro nahrávání souborů, k uskutečnění útoku postačuje automatické spuštění v PHP interpretátoru handleru obsahu „multipart/form-data“. Pro úspěšnou exploataci je nutné určení rozložení struktur v paměti procesu, které je specifické v každé sestavě (problém se řeší pomocí prohledávání offsetů, předem vypočítaných pro balíčky z různých distribucí).
Jako obezlička pro ochranu se doporučuje nastavit v php.ini parametr „session.upload_progress.enabled = off“ (nebo „php_admin_flag[session.upload_progress.enabled] = off“ v PHP-FPM), ale zástupce projektu PHP a také autor prvního prototypu exploitu tvrdí, že to nestačí k zablokování obou zranitelností. V poznámce k druhému prototypu exploitu se uvádí, že kromě výše zmíněného nastavení v php.ini je nutné k zamezení útoku bez použití záplaty úplně zablokovat požadavky s typem obsahu „multipart/form-data“, což znemožní nahrávání souborů přes webové formuláře.
V Apache httpd lze pro blokaci multipart požadavků použít následující pravidlo v mod_rewrite:
RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ — [F,L]
Pro blokaci v nginx:
if ($http_content_type ~* „multipart“) {
return 403;
}
Pro blokaci v Caddy:
@multipart header_regexp Content-Type (?i)multipart
respond @multipart 403
Doplnění: Byly zveřejněny opravy PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35, stejně jako podrobnosti o opravených kritických zranitelnostech. Analýza zranitelností a oficiálně doporučené obrané metody byly zveřejněny v samostatné zprávě.
Zdroj: opennet.ru
