PHP выпустил срочные обновления для двух критических уязвимостей, получивших общее название PHP2Shell. Они находятся в самом PHP, а не в WordPress, Laravel или другом приложении. Поэтому под угрозой может оказаться даже сайт с единственной страницей «Hello World», если он работает на уязвимой версии среды. Обе уязвимости получили оценку 9,2 по CVSS 4.0: CVE-2026-109618 и CVE-2026-109619. Они затрагивают почти все версии PHP, начиная с PHP 5.4. Разработчики PHP называют обновление единственным полным способом устранить риск.

Исправления вошли в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Риск касается PHP-FPM, Apache mod_php, php-cgi, FrankenPHP и LiteSpeed. Особенно опасной команда PHP считает конфигурацию Apache mod_php: показанная исследователями атака с одним запросом без авторизации может сработать ещё до запуска кода приложения.
Механизмы двух уязвимостей различаются. При ранней ошибке подготовки запроса PHP-FPM завершает рабочий процесс. Согласно анализу PHP, CVE-2026-109618 затрагивает и FPM, однако полноценную эксплуатацию этой уязвимости в FPM пока не продемонстрировали. Для CVE-2026-109619 исследователи показали выполнение кода и в mod_php, и в PHP-FPM; во втором случае атакующий путь зависит от операции, происходящей внутри работающего приложения.
Уязвимости могут позволить не только запускать код. Исследователи продемонстрировали чтение памяти работающего PHP-процесса без предварительного выполнения кода. В памяти могут оказаться пароли, токены авторизации, API-ключи и сертификаты, связанные с другими запросами. Такой доступ удалось показать на приложениях, которыми исследователи не управляли: проблема связана с PHP, а не с конкретным сайтом.
Администраторам следует обновить именно ту версию PHP, которая обслуживает веб-запросы, а затем перезапустить Apache, PHP-FPM и долгоживущие PHP-процессы. Обновление WordPress или Laravel не обновляет среду выполнения: PHP поставляется пакетом сервера, образом контейнера или хостинг-провайдером. После установки исправления стоит проверить
PHP 8.1 и более старые ветки проект уже не обновляет. Поддержка PHP 8.2 завершится 31 декабря 2026 года. Команда безопасности PHP подготовила бэкпорты для PHP 7.4, 8.0 и 8.1 — они пригодятся тем, кто собирает PHP из исходников или ждёт обновления поставщика. Дистрибутивы Linux и поставщики с длительной поддержкой получили патчи заранее; поэтому исправленный пакет может сохранять старый на вид номер версии. Debian советует проверять журнал изменений пакета на упоминание CVE, а не ориентироваться только на строку версии.
Если обновление пока невозможно, меры обхода лишь уменьшают риск отдельных сценариев и не делают сервер безопасным. Для CVE-2026-109618 PHP рекомендует установить
Для CVE-2026-109619 следует установить
Ещё до выхода исправлений Cloudflare сообщила о первых попытках эксплуатации. Технический директор компании Дейн Кнехт заявил: «Мы видим первые атаки и обновляем защитные меры по мере появления новых векторов». Он назвал правила межсетевого экрана Cloudflare временной мерой и призвал администраторов установить патч. Компания включила правила по умолчанию в 03:02 UTC, ещё до выхода обновления; позднее она сообщила об атаках на клиентов и попытках менять полезную нагрузку, чтобы обходить фильтры. Исследовательская фирма watchTowr, воспроизведшая CVE-2026-109618, сначала сообщала, что по состоянию на 11:26 UTC 21 октября атак в реальных условиях не наблюдалось. На тот момент ни одной из уязвимостей не было в каталоге известных эксплуатируемых уязвимостей CISA. В обновлении от 14:19 UTC того же дня watchTowr сообщила о «попытках активной эксплуатации» обеих CVE. На момент публикации ни один источник не подтвердил взлом конкретного сервера.
Некоторые организации отключили сервисы предосторожности, не заявляя о подтверждённом проникновении. BambooHR приостановила работу в США, Канаде и Ирландии, предупредила о перебоях с выплатой зарплат и сообщила, что пока не может назвать срок восстановления. В Нидерландах, по данным вещателя NOS, стали недоступны MijnOverheid, DigiD, сайт нижней палаты парламента, национальный центр кибербезопасности и несколько образовательных систем. Центр сообщил, что не видел злоупотребления уязвимостью, но призвал всех установить обновления.
PHP опубликовал сведения об уязвимостях примерно в назначенное время, 14:00 UTC 21 октября 2026 года. Изначально выпуск планировали на 22 октября. За день до этого, 20 октября, публикация на Hacker News сообщила о двух уязвимостях удалённого выполнения кода в PHP и указала CVE-2026-109618 и CVE-2026-109619. Как передавал The Hacker News, сообщение основывалось на доверенном источнике, но не содержало независимого подтверждения. В тот же вечер PHP разместил предварительное уведомление и перенёс публикацию на 21 октября. Утечка называла оценку CVSS 10,0; PHP оценил обе уязвимости в 9,2.
Уязвимости обнаружили и передали разработчикам Wiz Research, Calif и команда Codex Security компании OpenAI. В подготовке исправлений участвовали команда безопасности PHP и команда Gemini от Google. Исходный код, содержащий дефекты, находился в PHP больше десяти лет. Исследователи рассказали, что модели искусственного интеллекта помогли превратить давние ошибки в работающие эксплойты: задача, которая могла занять у команды месяцы, одному исследователю далась примерно за неделю. Calif проследила историю ошибки до исследований PHP 2004 года и отметила, что знание старых особенностей системы по-прежнему важно: современные модели не всегда самостоятельно начинают поиск с малозаметных примитивов двадцатилетней давности.
Процесс раскрытия информации дал сбой ещё до публикации исправления. По словам PHP Foundation, около 20:00 UTC 20 октября исследовательская фирма Calif по ошибке выложила видео с работающим доказательством концепции. В 07:41 UTC 21 октября, примерно за шесть часов до выхода патча, поставщик Chainguard опубликовал образы с исправлением. Их можно было изучить, пока другие пользователи ещё не получили обновление.
В отдельном разъяснении PHP Foundation сообщила, что признаки проблемы с нехваткой памяти, лежащей в основе CVE-2026-109618, разработчик ядра заметил во время внешнего аудита PHP в 2024 году. Тогда возможность атаки лишь предполагали: конкретного пути к выполнению кода не нашли. Варианты исправления грозили нарушить совместимость, открыть путь к отказу в обслуживании или потребовать изменений в сторонних расширениях. Небольшая команда не смогла быстро согласовать решение, и работа остановилась на несколько месяцев. Фонд назвал задержку «структурным провалом» процессов принятия решений и нехваткой ресурсов. Отчёты Calif, OpenAI и Wiz за 2026 год, подготовленные с помощью инструментов ИИ, позволили получить работающий эксплойт, оценить полный масштаб угрозы и поставить исправление в начало очереди. После этого фонд изменил порядок принятия решений по безопасности и добавил сотрудников и инструменты для более раннего выявления подобных проблем. Материал был обновлён 21 октября 2026 года: в него добавили сведения о поздних сообщениях об атаках и объяснение PHP Foundation об истории уязвимости.

Изображение носит иллюстративный характер
Исправления вошли в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Риск касается PHP-FPM, Apache mod_php, php-cgi, FrankenPHP и LiteSpeed. Особенно опасной команда PHP считает конфигурацию Apache mod_php: показанная исследователями атака с одним запросом без авторизации может сработать ещё до запуска кода приложения.
Механизмы двух уязвимостей различаются. При ранней ошибке подготовки запроса PHP-FPM завершает рабочий процесс. Согласно анализу PHP, CVE-2026-109618 затрагивает и FPM, однако полноценную эксплуатацию этой уязвимости в FPM пока не продемонстрировали. Для CVE-2026-109619 исследователи показали выполнение кода и в mod_php, и в PHP-FPM; во втором случае атакующий путь зависит от операции, происходящей внутри работающего приложения.
Уязвимости могут позволить не только запускать код. Исследователи продемонстрировали чтение памяти работающего PHP-процесса без предварительного выполнения кода. В памяти могут оказаться пароли, токены авторизации, API-ключи и сертификаты, связанные с другими запросами. Такой доступ удалось показать на приложениях, которыми исследователи не управляли: проблема связана с PHP, а не с конкретным сайтом.
Администраторам следует обновить именно ту версию PHP, которая обслуживает веб-запросы, а затем перезапустить Apache, PHP-FPM и долгоживущие PHP-процессы. Обновление WordPress или Laravel не обновляет среду выполнения: PHP поставляется пакетом сервера, образом контейнера или хостинг-провайдером. После установки исправления стоит проверить
memory_limit и post_max_size: патч вводит новый жёсткий предел памяти, при достижении которого процесс завершается без запуска обработчиков завершения. Настройки должны соответствовать требованиям приложения. PHP 8.1 и более старые ветки проект уже не обновляет. Поддержка PHP 8.2 завершится 31 декабря 2026 года. Команда безопасности PHP подготовила бэкпорты для PHP 7.4, 8.0 и 8.1 — они пригодятся тем, кто собирает PHP из исходников или ждёт обновления поставщика. Дистрибутивы Linux и поставщики с длительной поддержкой получили патчи заранее; поэтому исправленный пакет может сохранять старый на вид номер версии. Debian советует проверять журнал изменений пакета на упоминание CVE, а не ориентироваться только на строку версии.
Если обновление пока невозможно, меры обхода лишь уменьшают риск отдельных сценариев и не делают сервер безопасным. Для CVE-2026-109618 PHP рекомендует установить
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. Отключение отслеживания загрузки блокирует подтверждённые пути, связанные с сессиями, но не другие варианты атаки и никак не исправляет CVE-2026-109618. Эта функция включена по умолчанию и может обратиться к обработке сессий до того, как PHP закончит настройку запроса. До выпуска патча настройку уже предлагали как обходной путь, но разработчик ядра PHP Джина Питер Баньярд предупредила: «Могу сказать только одно: единственная мера защиты — установить патч или обновить PHP. К сожалению, я слишком много знаю». Ещё до выхода исправлений Cloudflare сообщила о первых попытках эксплуатации. Технический директор компании Дейн Кнехт заявил: «Мы видим первые атаки и обновляем защитные меры по мере появления новых векторов». Он назвал правила межсетевого экрана Cloudflare временной мерой и призвал администраторов установить патч. Компания включила правила по умолчанию в 03:02 UTC, ещё до выхода обновления; позднее она сообщила об атаках на клиентов и попытках менять полезную нагрузку, чтобы обходить фильтры. Исследовательская фирма watchTowr, воспроизведшая CVE-2026-109618, сначала сообщала, что по состоянию на 11:26 UTC 21 октября атак в реальных условиях не наблюдалось. На тот момент ни одной из уязвимостей не было в каталоге известных эксплуатируемых уязвимостей CISA. В обновлении от 14:19 UTC того же дня watchTowr сообщила о «попытках активной эксплуатации» обеих CVE. На момент публикации ни один источник не подтвердил взлом конкретного сервера.
Некоторые организации отключили сервисы предосторожности, не заявляя о подтверждённом проникновении. BambooHR приостановила работу в США, Канаде и Ирландии, предупредила о перебоях с выплатой зарплат и сообщила, что пока не может назвать срок восстановления. В Нидерландах, по данным вещателя NOS, стали недоступны MijnOverheid, DigiD, сайт нижней палаты парламента, национальный центр кибербезопасности и несколько образовательных систем. Центр сообщил, что не видел злоупотребления уязвимостью, но призвал всех установить обновления.
PHP опубликовал сведения об уязвимостях примерно в назначенное время, 14:00 UTC 21 октября 2026 года. Изначально выпуск планировали на 22 октября. За день до этого, 20 октября, публикация на Hacker News сообщила о двух уязвимостях удалённого выполнения кода в PHP и указала CVE-2026-109618 и CVE-2026-109619. Как передавал The Hacker News, сообщение основывалось на доверенном источнике, но не содержало независимого подтверждения. В тот же вечер PHP разместил предварительное уведомление и перенёс публикацию на 21 октября. Утечка называла оценку CVSS 10,0; PHP оценил обе уязвимости в 9,2.
Уязвимости обнаружили и передали разработчикам Wiz Research, Calif и команда Codex Security компании OpenAI. В подготовке исправлений участвовали команда безопасности PHP и команда Gemini от Google. Исходный код, содержащий дефекты, находился в PHP больше десяти лет. Исследователи рассказали, что модели искусственного интеллекта помогли превратить давние ошибки в работающие эксплойты: задача, которая могла занять у команды месяцы, одному исследователю далась примерно за неделю. Calif проследила историю ошибки до исследований PHP 2004 года и отметила, что знание старых особенностей системы по-прежнему важно: современные модели не всегда самостоятельно начинают поиск с малозаметных примитивов двадцатилетней давности.
Процесс раскрытия информации дал сбой ещё до публикации исправления. По словам PHP Foundation, около 20:00 UTC 20 октября исследовательская фирма Calif по ошибке выложила видео с работающим доказательством концепции. В 07:41 UTC 21 октября, примерно за шесть часов до выхода патча, поставщик Chainguard опубликовал образы с исправлением. Их можно было изучить, пока другие пользователи ещё не получили обновление.
В отдельном разъяснении PHP Foundation сообщила, что признаки проблемы с нехваткой памяти, лежащей в основе CVE-2026-109618, разработчик ядра заметил во время внешнего аудита PHP в 2024 году. Тогда возможность атаки лишь предполагали: конкретного пути к выполнению кода не нашли. Варианты исправления грозили нарушить совместимость, открыть путь к отказу в обслуживании или потребовать изменений в сторонних расширениях. Небольшая команда не смогла быстро согласовать решение, и работа остановилась на несколько месяцев. Фонд назвал задержку «структурным провалом» процессов принятия решений и нехваткой ресурсов. Отчёты Calif, OpenAI и Wiz за 2026 год, подготовленные с помощью инструментов ИИ, позволили получить работающий эксплойт, оценить полный масштаб угрозы и поставить исправление в начало очереди. После этого фонд изменил порядок принятия решений по безопасности и добавил сотрудников и инструменты для более раннего выявления подобных проблем. Материал был обновлён 21 октября 2026 года: в него добавили сведения о поздних сообщениях об атаках и объяснение PHP Foundation об истории уязвимости.