PHP2Shell: что нужно обновить сегодня

Если на вашем сервере работает PHP, обновите его сегодня. 21 октября в PHP исправили две критические ошибки, которые вместе называют PHP2Shell. Через них атакующий из интернета может захватить веб-сервер. Ни пароль, ни ошибка в вашем собственном коде для этого не нужны: уязвимой может оказаться даже обычная страница «Hello World», а исследователи показали атаки на свежие установки WordPress, Drupal и Joomla.
Атакующие не стали ждать. Honeypot-серверы Amazon зафиксировали попытку эксплуатации 17 октября, за четыре дня до публикации информации об ошибках. К дню релиза Amazon уже видел попытки от нескольких групп, а Cloudflare сообщает о миллионах попыток атак.
Коротко:
- Проверьте, какая версия PHP на самом деле обслуживает ваш сайт, а не только та, что в командной строке.
- Обновитесь до PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35, либо до исправленного пакета вашего Linux-дистрибутива.
- Не можете обновиться сегодня? Включите правила PHP2Shell в вашем WAF и ужесточите защиту сервера, либо отключите его от интернета, пока не обновите.
Дальше в статье разобран каждый шаг.
Меня это касается?
Почти наверняка, если PHP обслуживает ваши веб-страницы. Уязвимый код существует с PHP 5.4, выпущенного в 2012 году, поэтому затронуты практически все версии PHP, которые используются сегодня. Не важно, какой фреймворк или CMS вы применяете.
От того, как запущен PHP, зависит срочность:
| Как запущен PHP | Риск | Почему |
|---|---|---|
| Apache с mod_php | Наивысший. Обновляйте первым | Один запрос может запустить атаку ещё до выполнения вашего кода |
| PHP-FPM (Nginx и большинство современных конфигураций) | Высокий | Один путь атаки закрыт, но захват сервера удалённо всё же показали при определённых условиях |
| php-cgi, FrankenPHP, LiteSpeed | Высокий | PHP назвал их затронутыми |
| PHP 5.x или 7.4–8.1 без поддержки вендора | Наивысший | Официального исправленного релиза нет. Нужен бэкпорт от вендора или обновление версии |
Проверка за 10 секунд. Не доверяйте одному лишь php -v: он показывает PHP командной строки, который может отличаться от того, что обслуживает сайт. Проверьте тот, который использует ваш веб-сервер:
- Любой сайт: положите во временный файл в корне сайта код
<?php echo PHP_VERSION;, откройте его в браузере и сразу удалите. - Debian/Ubuntu:
dpkg -l | grep phpпокажет установленные пакеты PHP. - RHEL/Rocky/Alma:
rpm -qa | grep php. - Docker:
docker exec <container> php -v, и посмотрите, от какого тега базового образа вы собираетесь. - Виртуальный хостинг или WordPress: загляните в настройки PHP в панели хостинга или в WordPress: Инструменты → Здоровье сайта → Информация → Сервер.
Дистрибутивы часто сохраняют старый номер версии и переносят исправление в пакет, поэтому в Linux сравнивайте пакет с бюллетенем безопасности вашего дистрибутива, а не только номер.

Обновление: какие версии нужны
Обновление — единственное полное решение. Обходные меры снижают риск, но не устраняют его.
| Ваша ветка PHP | Обновиться до | Примечания |
|---|---|---|
| 8.5 | 8.5.12 | |
| 8.4 | 8.4.27 | |
| 8.3 | 8.3.36 | |
| 8.2 | 8.2.35 | Поддержка 8.2 заканчивается 31 декабря 2026 года, поэтому планируйте переход |
| 8.1, 8.0, 7.4 | Официального релиза нет | Используйте исправленную сборку вендора или бэкпорты в php-src (ветки PHP-<version>-CVE-2026-109618-109619) |
| 5.x | Исправления нет | Обновите версию или уберите сервер из интернета |
Как обновиться, в зависимости от конфигурации:
- Debian/Ubuntu:
sudo apt update && sudo apt upgrade(бюллетень Ubuntu: USN-8948-1/-2). - RHEL/Rocky/Alma/Fedora:
sudo dnf upgrade 'php*'(Red Hat: RHSA-2026:87080). - Alpine, Arch, Gentoo: исправленные пакеты уже вышли, обновляйтесь как обычно.
- Docker: пересоберите образ из последнего официального тега
phpи выкатите заново. Перезапуск старого контейнера его не исправляет. - Виртуальный хостинг: многие хостинги, в том числе SiteGround, включили защиту до релиза. Проверьте версию PHP в панели; если она старая, создайте тикет.
- Пользователи репозитория Remi: PHP предупреждал, что обновлений в день релиза там не будет, и мы пока не смогли подтвердить, что финальный релиз вышел. Перейдите на пакеты дистрибутива или соберите из исходников.
После обновления перезапустите PHP (PHP-FPM или Apache для mod_php), чтобы старые процессы завершились, а затем снова проверьте версию, которую реально отдаёт ваш сайт.
Не можете обновиться сегодня?
Выиграйте время, действуя в таком порядке. Ничто из этого не заменяет обновление, поэтому назначьте для каждого необновлённого сервера ответственного и срок.
- Поставьте перед сервером WAF. Cloudflare выпустил правила для известных схем атак для всех тарифов, включая бесплатный. Защита есть и у Fastly, Google Cloud и Vercel. Правила WAF защищают только тот трафик, который через них проходит, поэтому убедитесь, что атакующие не смогут обратиться к серверу напрямую.
- Отключите отслеживание прогресса загрузки в сессии. Задайте
session.upload_progress.enabled=0вphp.iniили в конфигурации пула FPM и перезапустите PHP. Задать это из приложения черезini_set()или.user.iniнедостаточно. - На PHP 8.5 дополнительно задайте
fatal_error_backtraces=0и перезапустите. - Ограничьте размеры запросов на веб-сервере или прокси: меньше размер тела, меньше частей multipart, ниже лимиты загрузки.
- На PHP-FPM значение
pm.max_requests=1даёт каждому запросу новый процесс. Это снижает производительность, поэтому используйте его только как временную защиту. - Ограничьте доступ. Спрячьте админ-панели и внутренние приложения за VPN или список разрешённых IP-адресов.
- Отключите от интернета. Британский Национальный центр кибербезопасности советует отключать от интернета системы, которые нельзя сразу исправить, а американское АНБ и CERT-EU дали похожие рекомендации. Для забытого тестового сервера или старого маркетингового сайта это нередко верное решение и без всякой атаки.
Используете PHP внутри продуктов, которые не создавали сами? Palo Alto Networks сообщает, что затронуты все версии PAN-OS и Panorama, а исправленные версии на 22 октября ещё не вышли. Следите за бюллетенями ваших вендоров.
Признаки того, что вас уже взломали
Попытки атак видели ещё до выхода исправления, поэтому обновление — это ещё не конец. Логи вашего приложения покажут немного: атака происходит внутри самого PHP. Смотрите логи веб-сервера и PHP, начиная с середины октября:
- Странные запросы на загрузку файлов, за которыми следуют ошибки лимита памяти (
Allowed memory size ... exhausted) - Всплески ошибок HTTP 500 без связанного релиза или бага
- Необычно большие или некорректные cookie
PHPSESSID - Падения или перезапуски процессов PHP гораздо чаще обычного
Если вы нашли такое, считайте сервер скомпрометированным: новые процессы PHP или файлы, которые вы не создавали, исходящие соединения, которые не можете объяснить, новые администраторы. Изолируйте его, смените секреты, которые на нём хранились (пароли баз данных, API-ключи), и пересоберите из чистого образа, а не чистите на месте.
Чтобы проверить свои публичные хосты, Searchlight Cyber выпустила open-source сканер php2shell-scanner. Используйте его осторожно: он намеренно вызывает ошибки памяти в PHP на целевой системе, поэтому запускайте его только на своих системах и вне часов пиковой нагрузки. Qualys, Rapid7 и Tenable тоже добавили детектирование, а тихие логи не доказывают, что вы в безопасности.
Мы тоже помогаем. Наша команда Cerberus проводит бесплатные проверки на PHP2Shell для любой компании: заполните короткую форму, подтвердите домен, и мы скажем, уязвимы ли вы. Наши проверки остаются в рамках согласованного вами скоупа и не роняют ваши серверы. → c7-security.com/cerberus-php2shell
Главное: ИИ нашёл уязвимость, а атакующие успели первыми
Эти ошибки находились в ядре PHP больше десяти лет. Исследователи из Calif, OpenAI и Wiz нашли их в августе с помощью ИИ-моделей, а на выпуск исправления ушло два месяца.

| Дата (2026) | Что произошло |
|---|---|
| 21 окт. | PHP выпускает исправления; информация об ошибках становится публичной |
| 17 окт. | Первая попытка эксплуатации замечена в реальных условиях, за 4 дня до раскрытия |
| 21 сен. | PHP подтверждает проблему и начинает работать над исправлением |
| 24 авг. | Wiz сообщает об ошибках в PHP |
| 20–21 авг. | Удалённый захват подтверждён на Drupal и WordPress |
| 19 авг. | Wiz находит первую ошибку с помощью ИИ |
Так сегодня выглядит безопасность. ИИ может за недели найти то, что люди не замечали десять лет, а у атакующих тот же ИИ. Никто не знает, как атакующий получил подробности раньше срока. Важно другое: промежуток между «ошибка существует» и «кто-то ею пользуется» теперь исчисляется днями, а не месяцами. К 22 октября правительство Великобритании отключило 32 сервиса, в основном из предосторожности, пока устанавливало исправления.
Ежегодные пентесты не рассчитаны на такое. Тест, который вы проводили в марте, ничего не говорит об ошибке, ставшей публичной во вторник.
Почему мы бесплатно проверяем на PHP2Shell
То, что мы наблюдаем на этой неделе, — хаос. Атаки начались до выхода исправления. Команды устанавливают исправления вслепую и не знают, на каких серверах какой PHP. Забытые тестовые серверы и старые маркетинговые сайты остаются открытыми, а у некоторых продуктов вендоров исправлений до сих пор нет.
Мы — команда, создавшая Cerberus, ИИ-хакера, созданного для безопасного тестирования рабочих систем: каждое его действие математически гарантированно остаётся в рамках скоупа, который вы одобрили. Из-за этой катастрофы мы запустили инициативу, чтобы помочь защитить как можно больше компаний.
Любая компания может получить бесплатную проверку на PHP2Shell. Заполните форму, подтвердите домен, и мы проверим его и пришлём вам результаты. Мы тестируем только те домены, которые вы подтвердили как свои.
→ Получить бесплатную проверку: c7-security.com/cerberus-php2shell
Если это руководство помогло, перешлите его тому, кто отвечает за ваши серверы. Вашей команде оно нужно сегодня.
Источники
- PHP: релизы безопасности, октябрь 2026
- Wiz Research: PHP2Shell
- Amazon Threat Intelligence: эксплуатация PHP2Shell до публичного раскрытия
- Tenable: PHP2Shell, ответы на частые вопросы
- Rapid7: CVE-2026-109618 и CVE-2026-109619
- Qualys: как найти, смягчить и исправить PHP2Shell
- BleepingComputer: PHP выпускает экстренные исправления
- The Register: PHP2Shell отключает государственные сервисы Великобритании
- Help Net Security: статус Fortinet, Cisco и Palo Alto
- Журнал изменений WAF Cloudflare
- Searchlight Cyber: обнаружение PHP2Shell
- SiteGround: критические уязвимости PHP