Екипът за разработка на PHP пусна спешни обновления за сигурност, за да отстрани PHP2Shell – две критични уязвимости (CVE-2026-109618 и CVE-2026-109619), които биха могли да позволят на атакуващи да изпълняват код отдалечено на уеб сървъри без необходимост от удостоверяване. Корекциите са включени в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, като екипът настоятелно призовава всички потребители на PHP да обновят незабавно.

„Тези констатации се нареждат сред най-тежките уязвимости, откривани в PHP, а вероятно и в историята на софтуера изобщо. Основните дефекти са присъствали в продължение на десетилетия, но доказването на тяхната експлоатируемост изискваше изключително сложна поредица от стъпки – на границата на възможностите на изследователите от плът и кръв. Водещите AI модели значително намалиха тази бариера, превръщайки отдавна съществуващ недостатък в работещ експлойт“, поясняват изследователите от Wiz.
Кой е засегнат?
Всяка инсталация на PHP, която обслужва уеб заявки, е засегната, включително PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Конфигурациите, използващи mod_php, са изложени на най-голяма опасност. Работещ експлойт вече доказа, че единична неудостоверена заявка може да задейства атаката, преди изобщо да се изпълни какъвто и да е код на приложението.
„Ситуацията с PHP ще доведе до масови инциденти – това е една от най-големите уязвимости от години насам“, отбелязва изследователят по сигурност Kevin Beaumont.
Уязвимостите
CVE-2026-109618 – Отдалечено изпълнение на код (RCE) чрез повреждане на паметта при недостиг (OOM corruption): обработката на състояние на изчерпана памет може да прекъсне PHP, докато вътрешните данни за заявката са само частично инициализирани. Впоследствие почистването на ресурсите на заявката може да третира невалидните данни като валидни.
CVE-2026-109619 – Отдалечено изпълнение на код (RCE) чрез остаряло глобално състояние: вътрешно състояние, обвързано със заявката, може да се запази дори след като заделената за него памет вече е освободена. Следваща заявка, обработена от същия работен процес (worker), може да използва това остаряло състояние, преди нормалната инициализация да го нулира.
Националният център за киберсигурност на Великобритания (NCSC) призовава организациите да обмислят спирането на всяка система, която не може да бъде коригирана незабавно.
„Има толкова много вградени инсталации, които никога няма да получат корекции за сигурност. Твърде много забравени, неподдържани приложения. Последиците от това ще се усещат много дълго време“, коментира експертът по компютърна криминалистика Hal Pomeranz.
Как можете да отстраните CVE-2026-109618 и CVE-2026-109619?
Обновете до PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35. Файловете за изтегляне са достъпни тук.
Дистрибуциите на Linux и доставчиците с дългосрочна поддръжка (LTS) получиха корекциите преди публичното им обявяване, така че системните администратори трябва да проверят при своите доставчици за обновени пакети.
Проектът PHP вече не поддържа PHP 8.1 и по-стари версии. Някои дистрибуции и LTS доставчици предлагат обратно пренесени корекции (backports), така че потребителите на тези версии трябва да се свържат със своя доставчик или да преминат към поддържана версия.
Всеки, който разчита на rpms.remirepo.net – хранилище, поддържано от доброволци, се съветва да премине към официалните пакети на съответната дистрибуция или да компилира PHP от изходен код, за да инсталира корекции за сигурност незабавно. Хранилището няма да разполага с налични обновления днес.
Поради изключителната сериозност на уязвимостите екипът по сигурността на PHP публикува и минимални пакети с обратно пренесени корекции за изходния код на PHP 7.4, 8.0 и 8.1. Те са предназначени за администратори, които компилират от изходен код или нямат LTS доставчик.
„Уебсайтовете с PHP зад Cloudflare вече имат внедрен първоначален набор от WAF правила за известните вектори за експлоатация на тези уязвимости. Правилата са достъпни за всички клиенти, включително и за безплатните планове“, заяви Dane Knecht, главен технологичен директор на Cloudflare.