Запросить демо
Безопасность

PHP2Shell: критические уязвимости удалённого выполнения кода в PHP (CVE-2026-109618, CVE-2026-109619)

Две критические уязвимости в среде выполнения PHP позволяют выполнить код без аутентификации. Затронутые и исправленные версии и пошаговый чек-лист для серверов.

Boran Yazılım·25 октября 2026 г.
Предупреждение PHP2Shell: CVE-2026-109618 и CVE-2026-109619, CVSS 9.2; в терминале обновление PHP с 8.4.26 до 8.4.27

PHP2Shell — общее название двух критических уязвимостей удалённого выполнения кода (RCE) в самой среде выполнения PHP, исправленных 21 октября 2026 года: CVE-2026-109618 и CVE-2026-109619. Обе оценены в 9.2 по CVSS v4.0 и позволяют выполнить код на сервере без аутентификации. Поскольку ошибка находится в PHP, а не в коде приложения, затронута любая установка PHP, обслуживающая веб-запросы, независимо от качества кода приложения.

Что делают две уязвимости?

CVE-2026-109618 — ошибка повреждения памяти, возникающая, когда PHP упирается в лимит памяти при подготовке запроса (разборе данных формы, то есть $_POST). Атакующий отправляет POST-запрос без аутентификации, размер которого превышает лимит памяти. Запрос обрабатывается до запуска кода приложения, поэтому проверка входа в приложении его не останавливает.

CVE-2026-109619 — ошибка use-after-free в состоянии, которое PHP-воркер переносит между запросами: освобождённая память одного запроса может использоваться следующим. По данным Datadog, функция session upload progress, включённая по умолчанию, делает этот путь эксплуатируемым в mod_php и PHP-FPM.

Какие версии затронуты?

  • PHP 8.5: до 8.5.12 (исправлено в 8.5.12)
  • PHP 8.4: до 8.4.27 (исправлено в 8.4.27)
  • PHP 8.3: до 8.3.36 (исправлено в 8.3.36)
  • PHP 8.2: до 8.2.35 (исправлено в 8.2.35)
  • PHP 7.4, 8.0 и 8.1: официального релиза нет; PHP опубликовал исходные патчи, иначе нужен пакет дистрибутива/LTS или переход на поддерживаемую ветку
  • PHP 7.3 и старше: исправления нет, нужен переход на поддерживаемую ветку

Затронуты Apache mod_php, PHP-FPM, php-cgi, LiteSpeed и FrankenPHP. Наибольший риск — у mod_php: один запрос без аутентификации может запустить атаку до выполнения кода приложения.

Хронология

Подробности утекли 20 октября 2026 года, до раскрытия, запланированного на 22 октября. PHP перенёс релиз и выпустил исправленные версии 21 октября. В тот же день watchTowr сообщил о попытках эксплуатации в своей сети ловушек. Datadog пишет, что AWS наблюдал попытки эксплуатации 17 октября, за четыре дня до раскрытия. 23 октября PHP опубликовал уведомление о связанной уязвимости CVE-2026-115560 в функции session upload progress; по данным Cloudflare, она затрагивает и полностью обновлённые версии, включая 8.5.12, и будет исправлена в следующем плановом релизе PHP.

Что делать?

1. Проведите инвентаризацию: перечислите все серверы и приложения с PHP, начиная с доступных из интернета. Учитывайте интерпретаторы PHP внутри контейнерных образов и приложений.
2. Обновите: переведите каждую установку на исправленную версию своей ветки или установите пакет дистрибутива с исправлением. Дистрибутивы могут переносить исправление без смены номера версии — ищите номера CVE в журнале изменений пакета.
3. Перезапустите: после обновления перезапустите все PHP-воркеры и пулы PHP-FPM, пересоберите контейнерные образы. Воркер со старой средой выполнения остаётся уязвимым.
4. Ограничьте доступ из интернета к системам, которые нельзя обновить сразу, и поставьте перед ними WAF или обратный прокси.
5. Отслеживайте: multipart-запросы с неиспользуемыми полями PHPSESSID или PHP_SESSION_UPLOAD_PROGRESS, ошибки «Allowed memory size ... exhausted» с «Unknown on line 0», segmentation fault воркеров и запуск оболочки веб-сервером.

Почему временных мер недостаточно

Настройки вроде memory_limit=-1 или session.upload_progress.enabled=0 сокращают поверхность атаки, но не закрывают уязвимости. PHP указывает, что никакое изменение конфигурации не устраняет их полностью. Единственное полное решение — исправленная версия и перезапуск всех воркеров.

Итог

PHP2Shell — пара уязвимостей без аутентификации, затрагивающая любое веб-приложение на PHP; попытки эксплуатации уже зафиксированы. Проверьте версию PHP на серверах сегодня; если она ниже 8.5.12, 8.4.27, 8.3.36 или 8.2.35, обновите её и перезапустите все воркеры. Если нужна помощь с обновлением систем на PHP, свяжитесь с командой Boran Yazılım через страницу контактов.

Источники