PHP kondigde op 26 oktober 2026 vier herbouwde officiële Windows-pakketten aan voor PHP 8.2 tot en met 8.5. De pakketten bevatten Brotli 1.2.1, dat CVE-2026-111497 verhelpt: een schrijfoperatie buiten de gereserveerde geheugenruimte tijdens Brotli-decompressie. De route die PHP beschrijft loopt via de Windows-extensie cURL wanneer automatische decompressie van HTTP-antwoorden is ingeschakeld.

De vier bijgewerkte Windows-pakketten

In de aankondiging van PHP staan deze pakketnummers. Alle vier bevatten Brotli 1.2.1.

PHP-takBijgewerkt Windows-pakketBrotli
8.28.2.35-11.2.1
8.38.3.36-11.2.1
8.48.4.27-11.2.1
8.58.5.12-11.2.1

De fout zit in Brotli-decompressie

PHP omschrijft CVE-2026-111497 als een schrijfactie buiten de geheugenruimte die voor gegevens is gereserveerd. Het gaat om de Brotli-decoder, niet om de kern van de PHP-taal. De bijgewerkte afhankelijkheid pakt dus de fout in die decoder aan.

Dit is een ander probleem dan de twee PHP2Shell-fouten die NeoTeo eerder behandelde: CVE-2026-111497 betreft Brotli-decompressie.

Automatische decompressie bepaalt wanneer de cURL-route speelt

PHP zegt dat cURL automatische decompressie van HTTP-antwoorden standaard uitschakelt. Een toepassing of HTTP-clientbibliotheek kan die optie wel inschakelen. De beschreven route vereist dus dat een Windows-applicatie via PHP’s cURL-extensie zo’n antwoord automatisch laat decomprimeren.

The Hacker News meldde dat de cURL-handler van Guzzle 7.16.1 standaard een lege waarde voor CURLOPT_ENCODING instelt. Daarmee kan cURL alle ondersteunde compressie-indelingen verwerken. Het medium meldde ook dat het dit scenario niet op Windows heeft getest.

Zo herken je de herbouw

De toevoeging -1 markeert volgens PHP de Windows-pakketten die opnieuw zijn gebouwd met bijgewerkte afhankelijkheden. De PHP-broncode en runtimeversie veranderen niet. Daarom toont php -v niet of je de herbouwde pakketvariant hebt; daarvoor moet je het pakketnummer controleren.