Коротко. 21 октября 2026 года разработчики PHP выпустили экстренные версии 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Они закрывают две критические уязвимости, которые назвали PHP2Shell: через них сайт можно взломать одним запросом, без логина и пароля, и выполнить на сервере свой код. Под угрозой почти любой сайт на PHP — WordPress, 1С-Битрикс, OpenCart, Drupal, Joomla, самописные сайты. Попытки атак идут с 17 октября, после выхода исправлений — массово. Что делать: узнать, какая версия PHP работает на сайте, обновить её до исправленной (или получить исправленную сборку от хостинга), перезапустить PHP и проверить сайт на следы взлома.
Статья собрана по объявлению разработчиков PHP и публикациям исследователей на 22 октября 2026 года. Ситуация быстро меняется — будем обновлять материал.
Что такое PHP2Shell
Уязвимости получили номера CVE-2026-109618 и CVE-2026-109619, обе оценены в 9,2 балла из 10 по шкале CVSS 4.0 — это критический уровень. Простыми словами:
- CVE-2026-109618 — ошибка при нехватке памяти. Специально собранный запрос с формой или загрузкой файла заставляет PHP прервать обработку на полпути, а при уборке за собой PHP портит память так, что злоумышленник может выполнить свой код.
- CVE-2026-109619 — ошибка с «остатками» прошлого запроса. После сбоя в одном запросе внутренние данные PHP остаются в памяти, и следующий запрос к тому же процессу может ими воспользоваться. Один из путей идёт через механизм прогресса загрузки файлов, который включён по умолчанию, — сайту даже не нужно работать с сессиями.
В итоге атакующий получает возможность выполнять команды на сервере с правами сайта: читать конфиги с паролями от базы, загружать веб-шеллы, рассылать спам, подменять страницы и платёжные формы.
Уязвимы все способы запуска PHP для сайтов: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed, FrankenPHP. Разработчики считают самым опасным mod_php: там показан рабочий взлом одним запросом, ещё до того как запустится код самого сайта. Команды PHP в консоли (CLI) уязвимость не затрагивает.
Хронология
| Дата | Что произошло |
|---|---|
| 17 октября | Amazon фиксирует первую попытку эксплуатации на своих ловушках — за четыре дня до публикации. |
| 20 октября | Разработчики PHP предупреждают о критическом обновлении. Часть организаций заранее отключает сайты. |
| 21 октября | Выходят PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35. Debian, Ubuntu и крупные панели выпускают исправленные пакеты. Через несколько часов появляются пробные эксплойты, Amazon, Cloudflare и watchTowr сообщают о массовых попытках атак. Cloudflare включает защитные правила для всех тарифов, включая бесплатный. |
Из-за угрозы временно закрывали сайт парламента Нидерландов и государственные порталы MijnOverheid и DigiD, 4chan перевёл сайт в режим «только чтение», по подсчётам ТАСС отключения госресурсов затронули как минимум 13 стран. Публично не подтверждено, что все эти отключения связаны именно с PHP2Shell: многие отключались превентивно.
Какие версии PHP исправлены
| Версия 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 номер версии после исправления не меняется. Например, исправленный PHP 7.4 из репозитория Sury по-прежнему показывает 7.4.33. Проверять нужно дату сборки или журнал изменений пакета, а не только номер.
Что делать, если сайт на обычном хостинге
- Узнайте версию PHP. Она видна в панели хостинга, в разделе настроек сайта или PHP. В WordPress — в «Инструменты → Здоровье сайта → Информация → Сервер», в Битриксе — в «Настройки → Инструменты → Информация о PHP».
- Спросите хостинг, установлено ли исправление. На виртуальном хостинге PHP обновляет провайдер, и именно он должен подтвердить, что сборка, на которой работает ваш сайт, содержит исправления CVE-2026-109618 и CVE-2026-109619.
- Если сайт на PHP 8.1 и старше — переключите его на 8.3 или 8.4, если сайт это выдерживает. Проверьте после переключения формы, корзину и оплату. Если не выдерживает — это повод заняться обновлением сайта: старый движок на старом PHP останется уязвимым и к следующим ошибкам.
Что делать, если у вас свой сервер
Обновите PHP из репозитория, откуда он установлен, и перезапустите все процессы PHP: работающие процессы держат старый код в памяти, пока их не перезапустят. Для Debian и Ubuntu:
# какие пакеты PHP стоят и откуда
dpkg -l 'php*' | grep ^ii
apt-cache policy php8.4-fpm
# обновить только PHP, не всю систему
apt update
apt install --only-upgrade $(dpkg -l 'php*' | awk '/^ii/{print $2}')
# перезапустить PHP-FPM, а если сайт на Apache с mod_php — и Apache
systemctl restart 'php*-fpm.service'
systemctl restart apache2
# проверить: в журнале пакета должны быть номера CVE
zgrep -l 'CVE-2026-10961' /usr/share/doc/php*/changelog.Debian.gz
Исправленные пакеты уже вышли:
- Debian 13 — php8.4 версии 8.4.27-1~deb13u1;
- Debian 12 — php8.2 версии 8.2.35-1~deb12u1;
- Ubuntu 24.04 и 22.04 — исправлены с прежними номерами версий;
- репозиторий Sury — все ветки от 5.6 до 8.5, для старых — с прежними номерами версий.
Если сервер под панелью (ISPmanager, HestiaCP, cPanel, Plesk), учтите: панели часто ставят собственные сборки PHP — например, в /opt/php84. Команда apt их может не затронуть, обновлять их нужно средствами панели.
Не запускайте в спешке полное обновление всего сервера. Вместе с PHP обновятся база данных, веб-сервер и библиотеки, и если что-то на сервере перезапускает службы само (мониторинг, автоисправление панели), обновление может зависнуть посередине и уронить сайты. Для этой уязвимости достаточно обновить только PHP.
Если обновить прямо сейчас нельзя
Разработчики PHP дают временные меры. Они снижают риск, но не делают сайт безопасным — полное решение только обновление:
- выключить прогресс загрузки файлов:
session.upload_progress.enabled = 0в php.ini или пуле FPM (не через.user.iniи не черезini_set()— это поздно); - снять предел памяти на уровне сервера:
memory_limit = -1черезphp_admin_value, и вместо него ограничить размер запросов:post_max_size8M, если загрузки файлов не нужны, или 32M, если нужны; - на PHP 8.5 —
fatal_error_backtraces = 0; - после изменений перезапустить все процессы PHP;
- если сайт за Cloudflare — правила против известных вариантов атаки уже включены на всех тарифах.
Как проверить, не взломали ли сайт
Публичных подтверждённых взломов на 22 октября нет, но попытки идут с 17-го. Признаки, на которые стоит посмотреть:
- новые PHP-файлы в папках сайта, особенно в
uploads,upload,tmp, и изменённые.htaccess; - падения PHP в логах — «Segmentation fault», «SIGSEGV», «exited on signal 11»: так выглядят неудачные попытки эксплуатации;
- посторонние процессы от пользователя сайта: оболочки, майнеры, curl и wget, которые никто не запускал;
- новые администраторы в CMS и незнакомые задания в cron.
# PHP-файлы, изменённые с 17 октября find /var/www -newerct 2026-10-17 \( -name '*.php' -o -name '.htaccess' \) -not -path '*/cache/*' # падения PHP journalctl --since 2026-10-17 | grep -iE 'php.*(segfault|SIGSEGV)' # процессы от пользователя сайта (подставьте своего) ps -u www-data -o pid,lstart,args
Если что-то нашлось — не удаляйте файлы сразу: сохраните их и логи для разбора, смените пароли от базы и админки, а лучше восстановите сайт из резервной копии, сделанной до 17 октября, и только потом обновите.
Похожий порядок проверки мы разбирали на примере массового взлома сайтов на 1С-Битрикс в 2022 году. Если сервер стоит у хостинга на VMmanager, проверьте и доступы: в октябре через взлом VMmanager и FirstVDS с клиентских серверов копировали пароли и ключи.
Частые вопросы
Какая версия PHP защищена от PHP2Shell?
PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 и новее. Для PHP 8.1 и старше официальных исправлений нет: их выпускают только дистрибутивы и поставщики пакетов, и номер версии при этом не меняется.
Как узнать, какая версия PHP на сайте?
В панели хостинга, в настройках сайта или PHP. В WordPress — «Инструменты → Здоровье сайта → Информация → Сервер», в 1С-Битрикс — «Настройки → Инструменты → Информация о PHP». Команда php -v в консоли показывает версию консольного PHP, а сайт может работать на другой.
Уязвим ли сайт на WordPress или 1С-Битрикс?
Да, если он работает на неисправленной версии PHP. Ошибка в самом PHP, а не в CMS, поэтому под угрозой WordPress, 1С-Битрикс, OpenCart, Drupal, Joomla и самописные сайты. Обновление CMS и плагинов уязвимость не закрывает — нужно обновить PHP.
Защищает ли Cloudflare от PHP2Shell?
Частично. 21 октября Cloudflare включил правила против известных вариантов атаки на всех тарифах, включая бесплатный. Это временная мера, как и настройки php.ini: они снижают риск, но не делают сайт безопасным. Полное решение — обновить PHP.
Обновил PHP, а номер версии не изменился. Это нормально?
Для PHP 8.1 и старше — да: исправленные сборки дистрибутивов сохраняют прежний номер, например 7.4.33 из репозитория Sury. Проверьте дату сборки или журнал изменений пакета: в нём должны быть CVE-2026-109618 и CVE-2026-109619. После обновления перезапустите все процессы PHP.
Нужно ли что-то делать, если PHP используется только в консоли?
Консольный PHP (CLI) уязвимость не затрагивает. Обновлять нужно PHP, на котором работает сайт: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed или FrankenPHP.
Что делаем мы
Мы проверяем серверы клиентов на поддержке: какие версии PHP работают на сайтах, есть ли в сборках исправления и нет ли следов атак — падений PHP, новых файлов, посторонних процессов. Где PHP ещё не исправлен — обновляем только PHP, без полного обновления сервера, и перезапускаем.
Если ваш сайт не на нашей поддержке и вы не уверены, что он защищён, — напишите. Проверим версию PHP и сборку, подскажем, как обновиться, и посмотрим, нет ли следов взлома.
Проверим ваш сайт на PHP2Shell
Пришлите адрес сайта — проверим версию PHP, исправления и следы атак.
Источники
- PHP: объявление о выпуске исправлений и временные меры
- GHSA-w8hw-w9fx-j79w (CVE-2026-109618) и GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- CERT-EU: Critical Vulnerabilities in PHP
- Debian Security Tracker
- Amazon: эксплуатация до публикации
- Rapid7: технические подробности
- SecurityLab: две дыры в PHP заставили отключать сайты
- Хабр: критическая уязвимость в PHP

