Екипът на PHP пусна обновени версии за Windows, за да отстрани сериозна уязвимост, известна като HTTP2Shell. Новите пакети са PHP 8.5.12-1, 8.4.27-1, 8.3.36-1 и 8.2.35-1, като PHP ги обяви на 26 октомври 2026 г.

Всяка компилация вече включва Brotli 1.2.1, която коригира уязвимостта CVE-2026-111497. Потребителите на Windows, които използват PHP, трябва да инсталират тези пакети незабавно.

Дефектът се намира в библиотеката Brotli на Google — инструмент за компресия, използван от множество програми за разархивиране на данни. Става въпрос за запис извън границите на буфера (out-of-bounds write), което означава, че кодът записва данни извън заделената памет. Node.js разкри дефекта в своето съобщение за сигурност на 21 октомври, като първоначално изследователите го нарекоха Node2Shell.

Уязвимост HTTP2Shell в PHP

След като стана ясно, че са засегнати още софтуерни продукти, името бе променено на HTTP2Shell. Google оценява проблема с резултат по CVSS v4.0 от 9.2 от 10. В зависимост от конфигурацията, той може да доведе до срив на програмата, разкриване на съдържанието на паметта или отдалечено изпълнение на зловреден код без необходимост от удостоверяване.

В официалния бюлетин на PHP се пояснява как уязвимостта засяга PHP под Windows. До уязвимия декодер може да се достигне през разширението cURL, когато е активирана автоматичната декомпресия на HTTP отговори. Тази настройка е изключена по подразбиране в cURL, съгласно документацията на libcurl. Въпреки това приложните програми и клиентските HTTP библиотеки могат да я активират.

Следователно инсталация на PHP е изложена на най-висок риск, когато декомпресира Brotli данни от източници, на които няма доверие. Наставката „-1“ в номерата на новите версии обозначава прекомпилирана версия за Windows с обновени зависимости, докато самите версии на средата за изпълнение на PHP не се променят.

Администраторите трябва да проверят и за отделен бюлетин за сигурност, публикуван от PHP на 21 октомври. Този пакет отстрани други две критични уязвимости — CVE-2026-109618 и CVE-2026-109619, които могат да позволят отдалечено изпълнение на зловреден код без удостоверяване. Поддръжката на PHP 8.2 ще приключи на 31 декември 2026 г., затова екипите, които все още използват този клон, следва да планират преминаване към поддържана версия.

Грешката не се ограничава само до PHP. Изследователите я откриха в Node.js, Python пакети, .NET, FFmpeg, ClickHouse и Apache Arrow. Microsoft и поддръжниците на два пакета за Python също публикуваха корекции за сигурност.

Тъй като толкова много продукти преизползват Brotli, самият номер на версията може да не показва пълната картина. Някои разработчици пренасят корекцията към по-стари версии (backporting), така че дадена компилация може да бъде защитена дори когато номерът на версията изглежда стар.

Екипите по сигурност следва първо да се уверят, че всяка Windows PHP система използва един от новите пакети с разширение -1. Те също така трябва да проверят вградените библиотеки на Brotli, тъй като коригираните основни версии са 1.0.10, 1.1.1 и 1.2.1.

Екипите, които не могат да инсталират корекциите за сигурност веднага, трябва да изолират ненадеждните Brotli входни данни от производствените системи. Официалната страница с препоръки за сигурност на PHP и бележките по изданието Brotli 1.2.1 в GitHub описват детайлите, а обновените пакети са достъпни на страницата за изтегляне на PHP за Windows.

За по-широк поглед върху проблема прочетете предишния ни доклад за това как HTTP2Shell засяга не само уеб трафика, но и други софтуерни решения. Материалът ни за обновленията за сигурност на Node.js също описва кои версии са получили корекции.