Ranljivost u PHP-u koja potencijalno može kompromitovati bilo koji PHP sajt

PHP razvijalci so danes ob 17:00 (MSK) napovedali izdajo nujnih popravkov (8.5.12, 8.4.27, 8.3.36 in 8.2.35), v katerih bodo odpravljene dve kritični ranljivosti. Vsem administratorjem strežnikov s PHP se priporoča takojšnje namestitev popravkov na svojih sistemih, takoj po njihovi izdaji. Uradno bodo podrobnosti razkrite šele po pojavnosti popravkov, toda glede na informacije, ki so se že pojavile, gre za ranljivosti CVE-2026-109618 in CVE-2026-109619, ki potencialno omogočajo daljinsko izvajanje lastne kode na katerem koli spletnem strežniku, ki izvaja PHP skripte v privzeti konfiguraciji. Težave se pojavijo v vseh različicah, ki so starejše od PHP 5.4.

Na spletu so se že pojavili prototipi exploitov (1, 2) za preverjanje ranljivosti sistemov. V opombi k exploit-u se trdi, da sta ranljivosti povzročeni z dostopom do že sproščene pomnilniške lokacije v obdelovalcu napredka nalaganja datotek na strežnik (session.upload_progress). Obstoječnost funkcionalnosti za nalaganje datotek na spletnem mestu za izvajanje napada ni potrebna, dovolj je samodejno sprožanje obdelovalca vsebine „multipart/form-data“ v PHP interpreterju. Za uspešno izkoriščanje je potrebno določiti razporeditev struktur v pomnilniku procesa, ki je specifična za vsak paket (težava se reši z iteracijo premikov v exploit-u, vnaprej izračunanih za pakete iz različnih distribucij).

Kot obvod zaščitni ukrepi predlagajo nastavitev v php.ini parameter „session.upload_progress.enabled = off“ (ali „php_admin_flag[session.upload_progress.enabled] = off“ v PHP-FPM), vendar predstavnik projekta PHP in avtor prvega prototipa exploit-a trdijo, da to za blokiranje obeh ranljivosti ni dovolj. V opombah k drugemu prototipu exploit-a je omenjeno, da poleg zgoraj omenjene nastavitve v php.ini za preprečitev napada brez uporabe popravka zahteva popolno blokado zahtevkov s tipom vsebine „multipart/form-data“, kar bo onemogočilo nalaganje datotek preko spletnih obrazcev.

V Apache httpd za blokado multipart zahtevkov lahko uporabite naslednje pravilo v mod_rewrite:

RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ — [F,L]

Za blokado v nginx:

if ($http_content_type ~* „multipart“) {
return 403;
}

Za blokado v Caddy:

@multipart header_regexp Content-Type (?i)multipart
respond @multipart 403

Dodatek: Objavljene so popravne različice PHP 8.5.12, 8.4.27, 8.3.36 in 8.2.35, skupaj s podrobnostmi o popravljenih kritičnih ranljivostih. Analiza ranljivosti in uradno priporočeni obvozi so objavljeni v ločeni novici.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster