PHP2Shell: уязвимость в PHP — что известно и что делать

PHP2Shell: критические уязвимости в PHP — что известно и как защитить сайт

Марина
Марина
📅 21 октября 2026
PHP2Shell: критические уязвимости в PHP — что известно и как защитить сайт

21 октября 2026 года команда PHP выпустила внеплановые версии 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Они закрывают две критические уязвимости в самом интерпретаторе PHP — CVE-2026-109618 и CVE-2026-109619, которые исследователи назвали PHP2Shell. Обе позволяют выполнить код на сервере без авторизации, то есть атаковать сайт может любой, кто отправит специально составленный запрос. Детали утекли за сутки до релиза, Cloudflare и watchTowr уже фиксируют попытки эксплуатации.

Под угрозой не конкретная CMS, а сам PHP, на котором работают WordPress, Drupal, Joomla, Bitrix, Laravel и множество сайтов на обычном хостинге. Ниже собрали, что известно на вечер 21 октября: официальные данные PHP, статус дистрибутивов и хостеров, что подтверждено и что нет. Отдельным блоком — слухи, а в конце — пошаговые действия для владельцев сайтов и VPS.

Коротко: что известно на 21 октября

  • Что случилось. Две уязвимости в ядре PHP дают удалённое выполнение кода без логина. Обновление CMS и плагинов не помогает — исправлять нужно сам PHP.
  • Кого касается. Любой PHP, который обслуживает веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP, LiteSpeed. Сильнее всего рискует mod_php.
  • Что исправлено. Версии 8.5.12, 8.4.27, 8.3.36, 8.2.35. Для 7.4, 8.0 и 8.1 есть только минимальные исходные патчи, для 7.3 и старше от PHP нет ничего.
  • Насколько опасно. PHP оценивает обе уязвимости в 9.2 по CVSS v4, NVD — в 9.8 по CVSS v3.1, ФСТЭК (БДУ:2026-17191 и 2026-17192) — в 9.3.
  • Атаки. Попытки эксплуатации подтверждают watchTowr и Cloudflare. Подтверждённых успешных взломов, индикаторов компрометации и цифр на вечер 21 октября нет.

Что такое PHP2Shell простыми словами

Обе ошибки связаны с тем, как PHP обращается с памятью между запросами. Эксплуатационных деталей мы не приводим, только суть по официальным описаниям PHP и NVD.

Уязвимость Суть Где подтверждён взлом
CVE-2026-109618 «OOM corruption» Когда запросу не хватает памяти, PHP аварийно прерывает его обработку. Если это происходит в момент, когда внутренние данные запроса подготовлены не до конца, при уборке после запроса PHP принимает «мусор» за нормальные данные. Довести запрос до этого можно специально составленной отправкой формы или файла, не выходя за обычные лимиты Полное выполнение кода показано против Apache с mod_php; FPM, FrankenPHP и LiteSpeed по анализу кода «вероятно уязвимы»
CVE-2026-109619 «stale global state» Рабочий процесс PHP хранит ссылки на память прошлого запроса уже после её освобождения, и следующий запрос может на неё наткнуться. Итог — утечка содержимого памяти и/или выполнение кода. Один из подтверждённых путей — механизм session upload progress Выполнение кода подтверждено против mod_php и PHP-FPM

Источник — бюллетени PHP на GitHub (GHSA-w8hw-w9fx-j79w и GHSA-6wmf-4rv5-p3rp). Утечка памяти опасна даже без выполнения кода: в ней могут оказаться пароли, токены и ключи из других запросов, предупреждают исследователи на сайте проекта php2shell.com, который ведёт Wiz.

У части исследователей и в БДУ ФСТЭК номера CVE привязаны к уязвимостям наоборот. Мы опираемся на нумерацию самого PHP и CVE.org.

Скриншот бюллетеня безопасности PHP от 21 октября 2026 года о PHP2Shell
Бюллетень безопасности на php.net, 21.10.2026

Кто нашёл уязвимости

По данным PHP Foundation, уязвимости независимо нашли три команды: Calif, Wiz Research и OpenAI Codex Security. Первой о проблеме сообщила Calif — 11 августа, Wiz — 24 августа. Признаки проблемы с нехваткой памяти были ещё в аудите PHP 2024 года, но исправление тогда буксовало; PHP Foundation сама называет эту задержку «структурным сбоем».

Отдельная деталь — роль ИИ. Wiz пишет, что использовала ИИ-модели при поиске и что они резко снизили порог адаптации эксплойта под разные версии и конфигурации: один исследователь за неделю сделал то, на что раньше у сильной команды уходили месяцы.

Хронология

Когда (МСК) Событие
11 августа Calif сообщает PHP о первой ошибке
24 августа Wiz сообщает PHP о своих находках
13 октября, 00:03 Зарезервированы номера CVE
20 октября, ~18:00 Номера CVE появляются на форумах и в соцсетях вместе с неверной оценкой «CVSS 10.0» и неверным временем релиза
20 октября, 22:30 PHP публикует предварительное объявление и переносит релиз на сутки раньше — на 21 октября, 17:00 МСК
20 октября, ~23:00 По данным PHP Foundation, Calif по ошибке публикует видео с работающим PoC, копии расходятся по соцсетям
21 октября, 06:02 Cloudflare включает защитные правила WAF для всех клиентов, включая бесплатный тариф
21 октября, ~16:34 Фактический выход исправленных версий — раньше объявленного времени
21 октября, 17:19 watchTowr сообщает о попытках эксплуатации обеих уязвимостей на своих ловушках
21 октября CISA выпускает предупреждение и пишет, что эксплуатации пока не наблюдает; в каталог активно эксплуатируемых уязвимостей (KEV) PHP2Shell на вечер не внесён

Какие версии PHP затронуты и что обновлять

Официально PHP перечисляет уязвимые версии только в поддерживаемых ветках, но исследователи (Wiz, Calif, Sansec) пишут, что уязвимый код есть во всех версиях начиная с PHP 5.4.

Ветка PHP Исправление Поддержка безопасности
8.5 8.5.12 до 31.12.2029
8.4 8.4.27 до 31.12.2028
8.3 8.3.36 до 31.12.2027
8.2 8.2.35 до 31.12.2026
8.1, 8.0, 7.4 только минимальные патчи в исходниках или пакеты дистрибутивов сняты с поддержки
7.3 и старше от PHP исправлений нет сняты с поддержки

Источники: бюллетень PHP и таблица поддерживаемых версий на 21.10.2026. Регулярная поддержка 8.1 и старше прекращена: для PHP2Shell опубликованы только минимальные исходные патчи для 7.4, 8.0 и 8.1, а готовые пакеты зависят от поставщика (дистрибутива, хостера, панели). Надёжнее перейти на 8.2 или новее; учтите, что поддержка 8.2 заканчивается уже 31 декабря 2026 года.

Обновление PHP на серверах после PHP2Shell — иллюстрация

Атакуют ли уже: что подтверждено

  • Попытки — да. watchTowr видит попытки эксплуатации обеих уязвимостей, без цифр и без данных об успехе. Cloudflare фиксирует атакующий трафик против клиентов и попытки подстроить его под обход правил.
  • Подтверждённых взломов — нет. CISA эксплуатации не наблюдала, Huntress не видит её у партнёров, PHP Foundation на момент раскрытия не нашла среди утёкших PoC ни одного рабочего эксплойта.
  • Превентивные отключения — да. В Нидерландах на время обновления отключали ряд государственных и образовательных сервисов (по данным Patchstack и The Hacker News), в Финляндии — часть госсайтов (по данным Reuters и Decrypt).

Заявление компании Hadrian об эксплуатации «в больших масштабах» другими источниками не подтверждено, поэтому мы относим его к неподтверждённому.

Что на самом деле значит «70% интернета»

Заголовки «уязвимы 70% интернета» пошли от блога Wiz. На деле 70% — это доля PHP среди сайтов: по W3Techs, PHP используют 69,3% сайтов, у которых удалось определить серверный язык. Это не число уязвимых серверов. Оценки открытых в интернет уязвимых хостов скромнее и сильно расходятся: Phoenix Security на основе одного исследования Shodan насчитала около 884 тыс. хостов на ветках без исправлений, исследователь Silas Cutler — «вероятно больше 1,3 млн». Данных по России нет ни у одного источника.

Что сделали дистрибутивы Linux

Главная ловушка для владельцев VPS: дистрибутивы вшивают исправление в пакет и оставляют старый номер версии. На Ubuntu 24.04 исправленный PHP по-прежнему показывает версию 8.3.6, поэтому ждать «8.3.36» в выводе php -v бессмысленно — сверяйте версию пакета.

Источник пакетов Статус на вечер 21.10
Ubuntu Исправлено во всех поддерживаемых версиях, бюллетень USN-8948-1; для 24.04 LTS — пакет php8.3 8.3.6-0ubuntu0.24.04.13
Debian Debian 12 — php8.2 8.2.35-1~deb12u1, Debian 13 — php8.4 8.4.27-1~deb13u1
RHEL Бюллетень RHSA-2026:87072 для php:8.2 на RHEL 9; по RHEL 8 и 10 бюллетеней мы не нашли
AlmaLinux Большинство пакетов в тестовом репозитории almalinux-testing; исключение — php:7.4 на AlmaLinux 8, он уже в основном репозитории
CloudLinux alt-php alt-php 7.4 и 8.0 — на большинстве платформ, 8.1 — на части; 8.2–8.5 и старые ветки — в тестовом репозитории
packages.sury.org, PPA ondrej/php Исправленные 8.2–8.5 для Debian и Ubuntu; у PPA на arm64 сборки 8.4 и 8.5 запаздывали
Официальные Docker-образы php Обновлены — нужно пересобрать образы и пересоздать контейнеры
Alpine, Remi, Amazon Linux 2023, Rocky Linux Исправлений на вечер 21.10 не было или мы их не нашли

Источники: Ubuntu, Debian, Red Hat, AlmaLinux, CloudLinux, Docker.

Что сделали хостеры и панели управления

На обычном (виртуальном) хостинге PHP обновляет провайдер. Мы проверили новости и официальные каналы 25 российских хостеров: публичная позиция на вечер 21 октября нашлась у пяти, отдельно мы нашли заявление IHC. Сайты двух провайдеров проверить не удалось — они не открылись.

Хостер Что заявил
Beget Ограничил механизм upload progress на виртуальном хостинге и администрируемых серверах, временно закрыл доступ к облачным базам данных по 80/443; владельцам VPS — обновить PHP самостоятельно, есть инструкции для ISPmanager и FASTPANEL (новость Beget)
NetAngels Обновления для PHP 5.6, 7.4+ и 8.2+ уже установлены, клиентам ничего делать не нужно; для 5.4–5.5 исправлений нет (новость NetAngels)
Спринтхост Ограничил потенциально уязвимые механизмы и ставит обновления; владельцам выделенных Спринтбоксов — обновить PHP самим (Telegram-канал компании)
Timeweb Cloud Рекомендует обновить PHP, перезапустить PHP-FPM и временно отключить upload progress (Telegram-канал компании)
HOSTKEY Рекомендует проверить и обновить PHP (Telegram-канал компании)
IHC Анонсировал установку исправлений 21 октября и временные меры через WAF (Telegram-канал компании)

По остальным крупным провайдерам мы не нашли публичных заявлений именно о PHP2Shell. Это не значит, что они ничего не сделали, — если ваш сайт на хостинге, спросите поддержку, установлены ли версии от 21 октября.

Среди панелей управления официальные инструкции выпустили DirectAdmin, CyberPanel, HestiaCP и CloudLinux. По Plesk в поисковой выдаче есть статья базы знаний о затронутых версиях PHP, но саму страницу открыть нам не удалось; по cPanel — только пересказ GoDaddy о выпуске пакетов ea-php. Заявлений ISPmanager и FASTPANEL о PHP2Shell на вечер 21 октября мы не нашли.

Что говорят: слухи и неподтверждённое

Как читать этот блок: ниже версии, которые активно обсуждают, но которые не подтверждены PHP или независимыми источниками. Часть уже опровергнута.

  • «CVSS 10.0». Цифра ходила вместе с утечкой. Опровергнуто: PHP оценивает обе уязвимости в 9.2, PHP Foundation прямо называет 10.0 неверной.
  • «Отключите upload progress — и вы защищены». Совет гуляет по соцсетям и гайдам. Отключение закрывает только известный путь второй уязвимости и не помогает от первой — об этом пишет сам PHP и член его команды безопасности.
  • «Затронуты PHP 5, 6, 7 и 8, все версии с 2004 года». PHP 6 никогда не выходил. По данным исследователей, уязвим код начиная с 5.4.
  • «Массовая эксплуатация уже идёт». Так заявляет Hadrian, но без данных; CISA и Huntress на 21 октября её не наблюдали, watchTowr видит только попытки.
  • «22,6 млн потенциально уязвимых экземпляров». Цифра со ссылкой на Unit 42 встречается в русскоязычных блогах и резко расходится с другими оценками. Первоисточник мы не проверили.
  • Список «упавших» из-за PHP2Shell сервисов. В соцсетях и части СМИ гуляют длинные списки отключённых сайтов в Европе. Подтверждены только некоторые превентивные отключения, связь остальных сбоев с PHP не доказана.
  • «Готовые эксплойты на GitHub». JFrog уже нашла фейковые PoC: в одном был Base64-код, похожий на загрузчик вредоноса, который при проверке менял обои рабочего стола на непристойные. Запускать «эксплойты» и «однострочные фиксы» из случайных репозиториев опасно.
  • «Патч обходится». В соцсетях пишут о сбое, воспроизводимом на исправленной 8.5.12. Разработчики PHP оспаривают его значимость, подтверждённого обхода исправления нет.

Что делать владельцу сайта прямо сейчас

Если сайт на обычном хостинге

  1. Узнайте версию PHP. В WordPress: «Инструменты» → «Здоровье сайта» → «Информация» → «Сервер». Версия есть и в панели хостинга.
  2. Спросите поддержку, установлены ли исправления от 21 октября для вашей версии PHP.
  3. Если PHP 8.1 или старше — переключите сайт на 8.2+ в панели, предварительно проверив совместимость на копии. Под старые ветки исправлений от PHP нет.
  4. Сделайте свежий бэкап сайта и базы и сохраните его вне хостинга.

Если у вас VPS или выделенный сервер

Здесь PHP обновляете вы сами. Порядок для Ubuntu и Debian:

# версия PHP в консоли (CLI) и какие ветки установлены;
# какой PHP обслуживает сайт — смотрите в панели, в WordPress или в конфиге FPM/Apache
php -v
ls /etc/php/

# версии установленных пакетов PHP — сверяйте с бюллетенем дистрибутива
dpkg -l 'php*' | grep '^ii'

# установить обновления
sudo apt update
sudo apt upgrade

# убедиться, что исправление есть в changelog пакета (пример для PHP 8.3 FPM)
zgrep -E 'CVE-2026-10961[89]' /usr/share/doc/php8.3-fpm/changelog.Debian.gz

# перезапустить PHP — старые процессы продолжают работать на уязвимом коде
# пример для PHP 8.3: подставьте свою ветку и перезапустите все используемые службы FPM
sudo systemctl restart php8.3-fpm
# для Apache с mod_php нужен именно restart, reload недостаточно
sudo systemctl restart apache2

На RHEL 9 исправление для потока php:8.2 вышло в основном репозитории (RHSA-2026:87072) — sudo dnf upgrade 'php*' и перезапуск php-fpm. На AlmaLinux на 21 октября большинство пакетов было только в тестовом репозитории: sudo dnf install almalinux-release-testing, затем sudo dnf upgrade 'php*' --enablerepo=almalinux-testing и перезапуск php-fpm; после этого сверьте версию пакета (rpm -qa 'php*'). Для Rocky Linux исправления на 21 октября мы не нашли. Для сайтов в Docker — пересобрать образ с --pull и пересоздать контейнеры. Если сервер управляется через панель (ISPmanager, FASTPANEL, Plesk и т.д.), обновляйте PHP средствами панели и проверьте, что обновились все установленные версии PHP, а не только основная.

WAF отсекает вредоносные запросы до обновления PHP — иллюстрация

Если обновиться прямо сейчас нельзя

PHP прямо пишет, что временные меры не делают установку безопасной и единственный надёжный путь — обновление. Но риск они снижают:

  • отключить session.upload_progress.enabled в php.ini или настройках пула FPM (не через ini_set() и не через .user.ini) и перезапустить все процессы PHP;
  • следовать остальным рекомендациям из бюллетеня PHP по лимитам памяти и размеру запросов;
  • если сайту не нужны формы с загрузкой файлов — блокировать запросы multipart/form-data на веб-сервере;
  • пропустить трафик через WAF: у Cloudflare правила против PHP2Shell включены на всех тарифах, включая бесплатный, но защищают они только трафик, идущий через Cloudflare, — если сервер доступен напрямую по IP, защиты нет;
  • для критичных сайтов, которые нельзя обновить, CISA советует временно вывести их из интернета.

Как понять, что сайт уже атаковали

Официальных индикаторов компрометации на 21 октября нет. Исследователи советуют обращать внимание на:

  • необычные запросы с отправкой форм, после которых в логах идут ошибки нехватки памяти или серия ответов 500;
  • аномально большие или битые cookie PHPSESSID, падения и перезапуски процессов PHP;
  • неожиданные дочерние процессы PHP или веб-сервера: командные оболочки (sh, bash), интерпретаторы (python, perl) и утилиты загрузки (curl, wget);
  • новые файлы в каталоге сайта, новые задачи cron и учётные записи.

Если есть подозрения, действуйте по плану из нашего гайда «Взломали VPS: что делать в первые 24 часа», а проверку проведите по инструкции как проверить VPS на взлом. Из-за возможной утечки памяти ключи и пароли, которые хранились на сервере, разумно сменить даже без следов взлома — пошагово это разобрано в материале о смене ключей и паролей после утечки.

Отдельно для WordPress: ключи UpdraftCentral

На той же неделе произошёл отдельный инцидент, который часто путают с PHP2Shell. 17–18 октября злоумышленники получили доступ к сайту и базе клиентов разработчика плагина UpdraftPlus, а 18–19 октября с помощью украденных ключей UpdraftCentral ставили бэкдор-плагины на подключённые сайты WordPress. Код и загрузки самого плагина, по словам разработчика, не затронуты (Patchstack, TeamUpdraft). Связь с PHP2Shell никто не заявлял. Если вы пользуетесь UpdraftPlus, обновите плагин до 1.26.13 (2.26.13 для Premium) и удалите ключи UpdraftCentral: обновление само бэкдоры не удаляет.

# есть ли на сайте ключи UpdraftCentral: команда должна выполниться без ошибки
# и вернуть непустое значение с ключами; ошибка или пустой вывод ключ не подтверждают
wp option get updraft_central_localkeys
# удалить ключи
wp option delete updraft_central_localkeys

Как выбирать хостинг с учётом таких инцидентов

PHP2Shell хорошо показывает разницу между типами хостинга. На виртуальном хостинге PHP обновляет провайдер, и важно, насколько быстро он это делает и сообщает ли клиентам. На VPS вся ответственность на владельце: без автообновлений и мониторинга сервер может месяцами работать на уязвимом PHP. При выборе стоит смотреть на:

  • скорость реакции: публикует ли провайдер новости о критических уязвимостях и сроки установки исправлений;
  • актуальные версии PHP: есть ли в панели 8.3–8.5 и можно ли переключать версию для каждого сайта;
  • администрирование: для VPS — есть ли администрируемый вариант, где обновления ставит провайдер;
  • бэкапы: хранятся ли копии отдельно от сервера.

Сравнить провайдеров виртуального хостинга можно в нашем каталоге хостингов, серверы с полным контролем — в каталоге VPS и VDS. Об ещё одном громком инциденте этой недели — атаке на панель виртуализации у хостеров — мы писали в материале о взломе FirstVDS через VMmanager 6.

Что в сухом остатке

PHP2Shell — редкий случай, когда уязвима не CMS и не плагин, а сам PHP, на котором работает большинство сайтов. Исправленные версии вышли 21 октября, подтверждённых массовых взломов на этот момент нет, но попытки эксплуатации уже фиксируются — откладывать установку исправлений нельзя.

Владельцам сайтов на хостинге — проверить версию PHP и уточнить у поддержки, стоят ли исправления. Владельцам VPS — обновить пакеты PHP, перезапустить PHP-FPM или Apache и убедиться по changelog, что исправление на месте. Всем, кто сидит на PHP 8.1 и старше, — планировать переход на актуальную ветку: регулярной поддержки этих версий больше нет.

Источники

  • PHP — бюллетень безопасности и предварительное объявление, 20–21.10.2026; поддерживаемые версии
  • GitHub Security Advisories — CVE-2026-109618, CVE-2026-109619
  • PHP Foundation — заявление о релизе, 21.10.2026
  • CISA — предупреждение, 21.10.2026
  • Wiz — исследование; Cloudflare — защита WAF; watchTowr — статус эксплуатации
  • Patchstack — PHP2Shell и UpdraftCentral; TeamUpdraft — инцидент
  • Дистрибутивы — Ubuntu USN-8948-1, Debian, Red Hat, AlmaLinux
  • Хостеры — Beget, NetAngels
  • JFrog — о фейковых PoC

Поделиться:
👁 4 просмотров
Марина
Редактор · FREEHOSTING
Главный редактор FREEHOSTING. С 2020 года тестирует VDS, VPS и хостинг-провайдеров — арендует серверы, нагружает их реальными проектами и пишет честные обзоры по итогам. Помогает читателям выбирать хостинг под свои задачи: от Telegram-бота до production-сайта.