PHP выпускает экстренные патчи для двух критических ошибок RCE PHP2Shell по мере появления попыток эксплойтов

PHP выпустил экстренные обновления, которые исправили два критических недостатка самого языка, позволяя злоумышленнику без учетной записи запускать код на веб-сервере. Исправления доступны в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, и команда PHP говорит, что только обновление полностью защищает сервер. Эти недостатки, вместе называемые PHP2Shell, находятся в PHP-среде выполнения, а не в каком-либо приложении, поэтому сайт

PHP выпустил экстренные обновления, которые исправили два критических недостатка самого языка, позволяя злоумышленнику без учетной записи запускать код на веб-сервере. Исправления доступны в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, и команда PHP говорит, что только обновление полностью защищает сервер.

Эти недостатки, вместе называемые PHP2Shell, находятся в PHP-среде выполнения, а не в каком-либо приложении, поэтому сайт раскрывается даже при защищённом коде. Самый высокий риск на серверах, использующих mod_php Apache, где рабочий эксплойт запускает атаку до запуска кода приложения.

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

Исследователи из Wiz, Калифорнии и OpenAI обнаружили и сообщили об этих недостатках, которые затрагивают почти все версии PHP вплоть до PHP 5.4.

Кто затронут

Каждая установка PHP, обслуживающая веб-запросы, находится под угрозой, включая PHP-FPM, Apache mod_php, php-cgi, FrankenPHP и LiteSpeed, согласно совету по безопасности PHP.

Поскольку недостатки находятся в движке, а не в коде любого сайта, даже простую страницу «Hello World» на уязвимой версии PHP можно атаковать.

В предупреждении mod_php выделяется как наивысший риск, при этом есть продемонстрированный эксплойт, при котором один неаутентифицированный запрос запускает атаку до запуска кода приложения. PHP-FPM ведёт себя иначе, потому что отключает работника, когда запрос сбывает на ранних этапах настройки.

По одной из двух ошибок собственный анализ PHP подтверждает, что FPM уязвим, но утверждает, что полного эксплойта FPM не было показано; вторая ошибка была показана так, что она достигает выполнения кода как на mod_php, так и на PHP-FPM, хотя путь FPM там зависит от операции внутри запускающегося приложения.

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

Исследователи продемонстрировали такое считывание живой рабочей памяти по сравнению с приложениями, которые они не контролировали, делая его независимым от приложения, работающего поверх PHP.

Что установить

Обновите PHP-среду выполнения, которая обслуживает веб-запросы, затем перезапустите Apache, PHP-FPM и всех долгосрочных PHP-работников. Обновление приложений, таких как WordPress или Laravel, не обновляет PHP-систему выполнения под ним; Это происходит от серверного пакета, хоста или изображения контейнера.

Ветка PHPУязвимостьПервая исправленная версия
8.5ниже 8.5.128.5.12
8.4ниже 8.4.278.4.27
8.3ниже 8.3.368.3.36
8.2ниже 8.2.358.2.35

PHP 8.1 и старше больше не получают обновления от PHP-проекта, а PHP 8.2 завершает срок службы 31 декабря 2026 года. Для старых ветвей команда по безопасности PHP опубликовала бэкпорты исходного кода для PHP 7.4, 8.0 и 8.1, чтобы помочь людям, работающим из исходника или ожидающим поставщика.

Дистрибутивы Linux и поставщики долгосрочной поддержки получали патчи заранее, поэтому пакет дистрибутивов может содержать исправление под старым номером версии; проверяйте журнал изменений пакета для CVE, как советует Debian, а не строку версии.

Если вы ещё не можете обновить

Только обновление — это полное исправление. Нижеуказанные меры снижают риск определённых путей атак и не делают сервер безопасным, согласно сообщению.

Для CVE-2026-109618 установите memory_limit=-1, чтобы приложения не могли его переопределять, поддерживайте post_max_size низким и устанавливайте ограничения по размеру запроса на веб-сервере или прокси. Не используйте RLIMIT_AS или RLIMIT_DATA как замену, потому что PHP предупреждает, что они могут спровоцировать тот же уязвимый путь.

Для CVE-2026-109619 установите session.upload_progress.enabled=0 и перезапустите всех рабочих, а на PHP 8.5 также установить fatal_error_backtraces=0. Отключение прогресса загрузки сессии блокирует подтверждённые пути сессии, но не другие варианты, и никакие изменения конфигурации не решают этот недостаток полностью, кроме как обновления.

Эта настройка распространялась как обходной путь до патча, и релиз подтверждает, что это никогда не было полным исправлением. Прогресс загрузки сессии включен по умолчанию и может достигать обработки сессии до того, как PHP завершит настройку запроса, поэтому он участвует в одном подтверждённом пути атаки для CVE-2026-109619, и почему его отключение не даёт результатов для CVE-2026-109618.

«Единственное, что могу сказать — единственное решение — это обновление/обновление PHP. К сожалению, я знаю слишком много», — написала разработчик PHP core Джина Питер Баньярд перед релизом, отвечая кому-то, кто предположил, что сеттинг может быть достаточным.

После обновления проверьте настройки памяти. Исправление добавляет новый лимит жёсткой памяти, и его достижение завершает процесс и останавливает работу обработчиков выключения, так что проверяйте memory_limit и post_max_size по потребностям вашего приложения.

Если вы уже патчили, но подозреваете более ранний взлом, исследователи советуют следить за необычными многокомпонентными запросами, за которыми следуют ошибки по ограничению памяти или повторяющиеся ответы HTTP 500, странно большие ответные файлы PHPSESSID и необъяснимые перезагрузки PHP-работников.

Его атакуют

До выхода патча Cloudflare заявила, что наблюдала ранние попытки воспользоваться недостатками. «Мы наблюдаем появление ранних атак и обновляем меры по мере появления новых векторов», — сказал технический директор Cloudflare Дейн Кнехт, назвав правила межсетевого экрана, которые Cloudflare внедрил, временными и призывая администраторов внести обновления.

Ни один источник не подтвердил успешный взлом. watchTowr, воспроизводивший CVE-2026-109618, не сообщил о эксплуатации в дикой природе по состоянию на 11:26 UTC 21 октября, и ни один из них не был в каталоге известных уязвимостей CISA на тот момент.

Некоторые организации отключили услуги в качестве меры предосторожности, а не в ответ на взлом. BambooHR отключила свою службу по всей территории США, Канады и Ирландии, предупредила о прерыве работы по зарплате и заявила, что времени восстановления пока нет.

Сообщество

Продолжите обсуждение на форуме

Перейти на форум