PHP obnavlja Windows pakete zbog Brotli propusta

PHP je obnovio zvanične Windows pakete za grane 8.2, 8.3, 8.4 i 8.5 kako bi otklonio CVE-2026-111497, ranjivost u biblioteci Brotli koja može dovesti do oštećenja memorije i mogućeg izvršavanja koda. Novi paketi nose oznake 8.5.12-1, 8.4.27-1, 8.3.36-1 i 8.2.35-1, a uključuju ispravljeni Brotli 1.2.1.
Propust je dostupan kroz cURL ekstenziju kada ona automatski raspakuje HTTP odgovore. Podrazumevana podešavanja cURL-a ne uključuju automatsku dekompresiju, ali aplikacija ili HTTP biblioteka mogu je aktivirati. Napad bi zahtevao posebno oblikovan komprimovani odgovor sa servera sa kojim PHP aplikacija uspostavlja vezu.
Koji Windows paketi zahtevaju zamenu
Obnovljena izdanja objavljena su pet dana posle PHP paketa od 21. oktobra koji su rešavali dve PHP2Shell ranjivosti za udaljeno izvršavanje koda. Izvorni PHP kod ostaje isti, pa popravke za PHP2Shell ostaju deo novih arhiva; promena se odnosi na ugrađenu verziju Brotli biblioteke.
PHP uz pakete objavljuje softverski spisak sastojaka. Za x64 Non Thread Safe buildove svih navedenih grana iz prethodnih izdanja taj spisak pokazuje Brotli 1.2.0, verziju obuhvaćenu problemom. Operateri Windows okruženja zato treba da preuzmu obnovljene pakete sa zvanične stranice za preuzimanje.
Sama komanda php -v neće razlikovati staru i novu arhivu, jer se PHP verzija nije promenila. Razliku pokazuje sufiks -1 u nazivu datoteke, kao u paketu php-8.5.12-1-nts-Win32-vs17-x64.zip, kao i SHA-256 hash naveden uz preuzimanje.
cURL i Guzzle kao put do ranjivosti
Automatska dekompresija znači da cURL zatraži komprimovani odgovor i zatim ga lokalno raspakuje. U PHP kodu se uključuje opcijom CURLOPT_ENCODING; prazna vrednost prihvata svaki format koji cURL podržava. Guzzle u izdanjima 7.16.1 i 8.3.1 za zahteve poslate preko cURL-a podrazumevano postavlja takvu praznu vrednost.
Zbog toga aplikacija na pogođenim Windows buildovima koja zadržava podrazumevana Guzzle podešavanja ispunjava uslov pod kojim se propust može dostići. Google ranjivost ocenjuje sa 9,2 od 10 po CVSS 4.0 skali, dok je Red Hat ocenjuje sa 8,1 po CVSS 3.1. PHP-ovo obaveštenje ne navodi aktivne napade, a CISA je 23. oktobra evidentirala da eksploatacija nije zabeležena.
Privremena kontrola i operativni koraci
Za sisteme koji još ne mogu da se ažuriraju, savet je da se isključi automatska Brotli dekompresija. U PHP-u to znači da se ne postavlja CURLOPT_ENCODING, jer cURL bez te opcije ne raspakuje odgovore. Samo uklanjanje oznake br iz zaglavlja Accept-Encoding nije dovoljno da spreči server da pošalje Brotli sadržaj.
U Guzzle-u se opcija zahteva decode_content može postaviti na false. Time se isključuje svako automatsko dekodiranje, pa i gzip odgovori stižu komprimovani. Praktičan poslovni prioritet je popisati Windows PHP instalacije i HTTP klijente, zameniti pogođene arhive, proveriti SHA-256 vrednosti i dokumentovati privremenu promenu podešavanja tamo gde nadogradnja ne može odmah da se sprovede.

