Разработчики PHP выпустили экстренные патчи для двух критических уязвимостей, получивших общее название PHP2Shell. Эти проблемы позволяют удаленно выполнять код без аутентификации. Как и ожидалось, уязвимости затрагивают практически все серверы, где PHP используется для обработки веб-запросов. Теперь эксперты предупреждают, что попытки эксплуатации багов были замечены еще до выхода патчей.
Как уже сообщалось вчера, уязвимости получили идентификаторы CVE-2026-109618 и CVE-2026-109619 и набрали по 9,2 балла по шкале CVSS. Проблемы затрагивают PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed.
При этом разработчики подчеркивают, что наибольшему риску подвержены серверы с mod_php, так как для них уже создан эксплоит, где одного запроса без аутентификации достаточно для выполнения кода еще до запуска самого веб-приложения.
Обе уязвимости связаны с обработкой памяти после аварийного завершения запроса. Так, CVE-2026-109618 представляет собой цепочку проблем, в итоге приводящую к повреждению памяти из-за out-of-memory, а CVE-2026-109619 связана с сохранением устаревшего глобального состояния и позволяет добиться use-after-free в хипе. В результате атакующий получает возможность выполнить произвольный код с правами веб-воркера или прочитать содержимое памяти процесса, где могут находиться пароли, API-ключи, токены и другие секреты.
Общий масштаб проблемы огромен. Дело в том, что перед PHP2Shell уязвимы практически все версии PHP начиная с PHP 5.4, то есть проблема затрагивает PHP 5.4, 5.5 и 5.6, все версии PHP 7.x, PHP 8.0 и 8.1, а также PHP 8.2 до 8.2.35, PHP 8.3 до 8.3.36, PHP 8.4 до 8.4.27 и PHP 8.5 до 8.5.12. Фактически уязвимые механизмы присутствовали в коде PHP больше 14 лет (версия PHP 5.4 вышла еще в марте 2012 года).
При этом эксперты не преувеличивают, когда говорят, что на PHP работает большая часть интернета: PHP используется примерно на 70% сайтов, поэтому потенциальная поверхность атаки исчисляется миллионами или десятками миллионов серверов. К примеру, по оценке VirusTotal, в сети доступны более 5,1 млн PHP-хостов, причем примерно у 3,8 млн из них открыт хотя бы один порт.
«PHP используется на сайтах под управлением WordPress, Drupal, Joomla и Magento, платформах shared-хостинга, в панелях управления и огромном количестве ПО, которое даже не афиширует, что работает на PHP», — пишут специалисты компании Huntress.
Проблемы PHP2Shell независимо обнаружили исследователи компаний Calif, OpenAI и Wiz (принадлежит компании Google). Причем первые признаки уязвимости, связанной с out-of-memory, находили еще в 2020 и 2024 годах, однако тогда специалистам не удалось доказать возможность удаленного выполнения кода.
Ситуация изменилась в 2026 году благодаря современным ИИ-моделям. Специалисты Calif исследовали PHP в рамках инициативы OpenAI Patch the Planet, используя в работе GPT-5.6 Sol. Исследователи направили модель на изучение старых проблем PHP с ограничением памяти, после чего ИИ помог найти способы управляемо вызывать out-of-memory, обходить ограничения post_max_size и анализировать состояние PHP после аварийного завершения запроса. Затем найденный паттерн обобщили и использовали для поиска аналогичных проблем в других частях кода, что позволило обнаружить дополнительные возможности для эксплуатации.
Специалисты Wiz, в свою очередь, использовали ИИ-агента Wiz Atlas, Gemini 4 Argon и GPT-5.6 Sol. По словам исследователей, модели помогали не только искать уязвимости, но и разрабатывать эксплоиты, анализировать неудачные попытки, адаптировать цепочки эксплуатации под разные версии и конфигурации PHP и различия в расположении данных в памяти.
В своем отчете аналитики Wiz называют уязвимости PHP2Shell одними из самых серьезных проблем за всю историю PHP.
Изначально раскрытие информации об уязвимостях было запланировано на 22 октября 2026 года, однако уже 20 октября данные о багах утекли в сеть, а исследователи Calif по ошибке опубликовали видео с работающим PoC-эксплоитом. Позже в Chainguard выпустили готовые образы с исправлениями, что позволило всем желающим изучить патч еще до его официальной публикации. В итоге разработчики PHP перенесли релиз исправлений на день раньше.
Исправления вошли в состав PHP версий 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Также подготовлены минимальные бэкпорты патчей для PHP 7.4, PHP 8.0 и PHP 8.1, которые уже не поддерживаются.
В целом администраторам рекомендуется как можно скорее установить PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35 на сервера PHP 8.x, и перейти на исправленную и актуальную версию, если они используют PHP 7 или более ранние версии.
Кроме того, после установки обновлений администраторам понадобится перезапустить PHP-FPM, Apache и другие долгоживущие PHP-воркеры, так как в противном случае старый уязвимый код может продолжить работать в памяти.
Хуже того, недостаточно просто установить патчи. Поскольку попытки эксплуатации PHP2Shell фиксировали еще до выхода исправлений, специалисты рекомендуют проверить уже обновленные системы в поисках признаков возможной компрометации. В частности, стоит изучить логи и телеметрию доступных из интернета серверов в поисках подозрительных запросов, ошибок необычного поведения PHP-воркеров.
Тем временем эксперты Cloudflare, Hadrian, Patchstack, Vega и watchTowr предупредили, что уже фиксируют попытки эксплуатации PHP2Shell в реальных атаках, в том числе с использованием публичных эксплоитов. Информации о подтвержденных взломах пока нет, однако исследователи ожидают, что ситуация очень скоро изменится.
Разработчики PHP подчеркивают, что настройки и WAF-правила помогут закрыть лишь отдельные векторы возможных атак, а полноценной защитой от PHP2Shell считается только установка патчей. Если оперативно обновить публичный PHP-сервер невозможно, ИБ-специалисты рекомендуют временно изолировать его от интернета или отключить.
Из-за серьезности проблем PHP2Shell некоторые организации предпочли не ждать патчей и заранее отключили уязвимые сервисы для обновления. Например, из-за уязвимостей на некоторое время стали недоступны Wikipedia и Internet Archive. При этом представители Internet Archive подтвердили отключение archive.org, однако публично не связывали это с уязвимостями PHP.
В Нидерландах ушли в офлайн государственные порталы MijnOverheid и DigiD, сайт нижней палаты парламента, ресурсы национального центра кибербезопасности и ряда образовательных учреждений. Аналогичные меры приняли некоторые госструктуры Финляндии и правозащитная организация noyb. Кроме того, HR-платформа BambooHR временно отключила свои сервисы в США, Канаде и Ирландии, предупредив клиентов, что из-за этого могут возникнуть проблемы с начислением зарплат.
