После выхода PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35 PHP Foundation опубликовала разбор того, как нашли и исправляли критические уязвимости PHP2Shell (CVE-2026-109618 и CVE-2026-109619). Фонд признал, что проблему, которая привела к одной из уязвимостей, обнаружили еще в 2024 году, но ее исправление задержалось.

Обе уязвимости находятся в частях PHP, через которые проходит почти каждый запрос: управлении памятью и обработке ошибок. По данным фонда, на Apache с mod_php атаку через CVE-2026-109618 можно провести еще до того, как начнет работать код сайта, а выполнение кода с настройками по умолчанию было продемонстрировано. В PHP-FPM выполнение кода подтверждено через код приложений.
Проблему нашли еще в 2024 году
В 2024 году PHP впервые за много лет прошел внешний аудит безопасности. Его организовали через OSTIF на средства немецкого Sovereign Tech Agency, а провела компания Quarkslab. Исправляя одну из найденных ошибок, разработчик ядра PHP заметил первые признаки проблемы с нехваткой памяти (out-of-memory, OOM), которая позже стала уязвимостью CVE-2026-109618. Тогда возможность эксплуатации допускалась лишь теоретически, конкретных способов атаки не нашли, и другие проблемы с очевидными последствиями оказались важнее.
Команда безопасности PHP подготовила несколько вариантов исправления, но у каждого были недостатки: потеря обратной совместимости, новые возможности для атак типа «отказ в обслуживании» или необходимость менять множество сторонних расширений. Команда принимает решения консенсусом и не смогла выбрать один из вариантов, опасаясь последствий неудачного выбора. Из-за этого, а также из-за отсутствия известного пути к удаленному выполнению кода и нехватки разработчиков с глубоким знанием движка, работа над исправлением месяцами останавливалась и начиналась заново.
PHP Foundation называет задержку структурным провалом, вызванным порядком принятия решений и нехваткой ресурсов. Команда безопасности уже меняет процессы: теперь решения можно будет принимать большинством голосов, а компромиссы будут поощряться.
Кто нашел уязвимости
PHP Foundation добилась включения PHP в программу Patch the Planet, в рамках которой 30 июля 2026 года аудит PHP начала компания Calif. 11 августа исследователь Calif Ryan A сообщил об удаленном выполнении кода с той же первопричиной, что и у проблемы, найденной в 2024 году. В тот же день независимо от него о той же причине сообщила OpenAI. 24 августа новые способы атаки нашла Wiz, 18 сентября – снова OpenAI. Сейчас PHP проверяет также Trail of Bits.
После сообщений Calif, OpenAI и Wiz стало ясно, насколько серьезна проблема, и с 11 августа ее исправление стало главной задачей для всех сотрудников PHP Foundation, занятых безопасностью. По словам фонда, без его финансирования было бы невозможно занять этой работой сразу нескольких человек, которые в итоге работали в выходные и круглосуточно.
Фонд также рассказал, что для проверки PHP использует инструменты ИИ, в том числе Claude Mythos от Anthropic и Daybreak Red от OpenAI. Число сообщений об уязвимостях резко выросло: с 1 июля команда безопасности опубликовала 15 CVE и разобрала более 100 сообщений, которые оказались недействительными, повторными или невоспроизводимыми.
Как утечка сорвала скоординированное раскрытие
По словам PHP Foundation, скоординированное раскрытие шло по плану до последних двух дней. 20 октября около 18:00 по московскому времени номера CVE начали распространяться на форумах и в социальных сетях – с неверным временем выпуска и неверной оценкой CVSS 10.0 вместо 9.2. Технические подробности при этом не утекли.
В ответ команда PHP в 22:30 по московскому времени опубликовала предварительное уведомление и перенесла выпуск исправлений с 22 октября на 21 октября, 17:00 по московскому времени. Выпустить их сразу было нельзя: дистрибутивы еще собирали пакеты, и многие пользователи остались бы без простого способа обновиться.
Вскоре после утечки и предварительного уведомления Calif, одна из компаний, сообщивших об уязвимостях, по ошибке опубликовала видео, в котором ее демонстрационный эксплойт работал против нескольких целей. Видео раскрывало некоторые, хотя и ограниченные, подробности об уязвимостях. Его удалили, но копии быстро разошлись по социальным сетям, и, по оценке фонда, это ускорило создание эксплойтов. Кроме того, могли утечь рекомендации по защите, которые фонд начал рассылать отдельным операторам критической инфраструктуры. По данным PHP Foundation, к моменту выпуска исправлений работающих эксплойтов среди появившихся в сети не было, однако, по данным Cloudflare, попытки эксплуатации начались еще до раскрытия.
21 октября в 10:41 по московскому времени, более чем за шесть часов до выпуска исправлений, компания Chainguard в одностороннем порядке нарушила эмбарго и опубликовала собранные образы с исправлением, которое она, как и другие дистрибутивы, получила заранее. По словам фонда, любой злоумышленник мог изучить исправление в двоичном виде, пока остальные пользователи PHP еще ждали выпуска.
PHP Foundation просит финансирования
PHP используется в госуслугах, интернет-магазинах, банках и СМИ, но работа над безопасностью самого PHP по-прежнему держится на небольшой группе разработчиков, которых финансирует фонд, и помощи добровольцев. Инструменты находят ошибки быстрее, чем когда-либо, однако выбирать исправление для давнего архитектурного решения в движке, оценивать проблемы совместимости и проверять исправления могут только опытные инженеры, знающие весь код PHP, а их слишком мало.
Фонд призвал компании, которые строят продукты на PHP, хостинг-провайдеров, облачные платформы, дистрибутивы, а также государственные учреждения поддержать его финансово. В пример PHP Foundation приводит Sovereign Tech Agency, которое оплатило аудит 2024 года.