Ранее сегодня проект PHP выпустил версии PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Эти релизы устраняют две критические уязвимости, которые при определенных условиях позволяют неавторизованному злоумышленнику выполнить код на серверах под управлением PHP. Если вы используете PHP, вам необходимо срочно обновиться. Анонс на php.net содержит технические детали об уязвимостях, векторах атак, а также инструкции по обновлению для различных систем.

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

Две связанные критические уязвимости удаленного выполнения кода

  • CVE-2026-109618 / GHSA-w8hw-w9fx-j79w:  RCE через повреждение памяти при OOM (out-of-memory): если запрос достигавл лимита памяти memory_limit в абсолютно неподходящий момент, PHP мог оставить частично инициализированные внутренние данные, а затем рассматривать их как валидные, что приводило к повреждению памяти. В Apache с модулем mod_php неавторизованный запрос может спровоцировать это до выполнения какого-либо кода приложения, при этом было продемонстрировано полноценное удаленное выполнение кода с настройками по умолчанию. Удаленное выполнение кода также было подтверждено на PHP-FPM через пути выполнения в коде приложений.
  • CVE-2026-109619 / GHSA-6wmf-4rv5-p3rp:  RCE через устаревшее глобальное состояние: фатальная ошибка в неверный момент могла привести к тому, что внутреннее состояние указывало на память, принадлежавшую предыдущему запросу. Последующий запрос, обрабатываемый тем же воркером, мог использовать эту освобожденную память. Были подтверждены уязвимость типа use-after-free и падение воркера, а автор доклада продемонстрировал удаленное выполнение кода на реальном приложении под управлением Apache с mod_php.

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

Первый внешний аудит и повышенное внимание к безопасности

В 2024 году PHP прошел первый за последние годы внешний аудит безопасности. PHP Foundation получила финансирование от Sovereign Tech Agency на организацию этого аудита через OSTIF, а исполнителем выступила компания Quarkslab. Устраняя одну из проблем, о которых сообщала Quarkslab, разработчик ядра PHP, нанятый PHP Foundation, обнаружил первые признаки проблемы с OOM, лежащей в основе CVE-2026-109618. В 2024 году был теоретически обоснован потенциальный эксплойт для проблемы с OOM, однако конкретных векторов обнаружено не было, а другие осязаемые проблемы с очевидным влиянием заслонили эти опасения.

Для исправления проблемы с OOM команда безопасности PHP разработала несколько конкурирующих подходов, но каждый из них имел свои недостатки: нарушение обратной совместимости, потенциальные новые возможности для DDoS-атак или необходимость изменения множества сторонних расширений, координация которых казалась невозможной. Команда безопасности PHP, работающая на основе консенсуса, испытывала трудности с выбором и опасалась последствий принятия неверного решения. В сочетании с отсутствием известного пути к удаленному выполнению кода и тем фактом, что небольшая команда разработчиков ядра с необходимыми глубокими знаниями движка была занята множеством других обязанностей, этот процесс принятия решений приводил к тому, что работа над исходом стопорилась и возобновлялась вновь на протяжении месяцев. Мы не будем притворяться: эта задержка была системным сбоем, вызванным как процессом принятия решений в команде безопасности, так и нехваткой ресурсов. С тех пор команда безопасности начала менять свои процессы, и эта работа продолжается, чтобы решения могли приниматься большинством голосов, а компромиссы приветствовались.

Создание устойчивой профессиональной организации по безопасности

За последние месяцы организация работы по безопасности в PHP существенно изменилась. В мае 2026 года PHP Foundation создала Ecosystem Security Team (команду безопасности экосистемы), которая работает рука об руку с командой безопасности PHP над триажем, координацией и усилением защиты (харденингом). Работа Фолькера Душа (Volker Dusch) в качестве приглашенного инженера по безопасности ИИ в PHP Foundation значительно улучшила коммуникацию и сотрудничество между командой безопасности PHP и фондом. Александр Дабуа присоединился к PHP Foundation в июле, чтобы помочь команде безопасности PHP с триажем, обработкой и исправлением отчетов о безопасности, а Даниэль Шерцер присоединился в сентябре для работы над харденингом.

Ранее в этом году мы сотрудничали с Alpha-Omega для сканирования PHP с помощью Claude Mythos от Anthropic. Но после сканирования Mythos мы добавили и другие инструменты, включая Daybreak Red от OpenAI для валидации отчетов и эксплойтов, а также сборки с санитайзерами и среды для воспроизведения, которые соответствуют нашей CI на каждой платформе, поддерживаемой PHP.

PHP Foundation включила проект PHP в программу Patch the Planet, в рамках которой фирма по безопасности Calif 30 июля 2026 года начала аудит PHP. 11 августа исследователь Райан А (Ryan A) из Calif сообщил об уязвимости безусловного удаленного выполнения кода с той же первопричиной, что и проблема с OOM, обнаруженная нами в 2024 году. Компания OpenAI независимо сообщила о той же первопричине, за чем последовало открытие дополнительных векторов атак со стороны OpenAI 18 сентября и со стороны Wiz 24 августа. Недавно аудит PHP также начала компания Trail of Bits. Отчеты от Calif, OpenAI и Wiz прояснили всю масштабность проблемы с OOM, и с 11 августа ее исправление стало главным приоритетом для всей команды PHP Foundation, работающей над безопасностью. Без финансирования фонда было бы невозможно привлечь нескольких специалистов к работе над этой проблемой на полный рабочий день, в том числе по выходным и круглосуточно, для координации и связи с другими заинтересованными сторонами.

Рост числа исследований с поддержкой ИИ также означает, что команда безопасности PHP получает гораздо больше отчетов, чем раньше. Как Александр Дабуа описывал на прошлой неделе в статье Как команда безопасности PHP обрабатывает ваши отчеты, с 1 июля команда опубликовала 15 CVE и проработала более 100 отчетов, которые оказались недействительными, дубликатами или не воспроизводились. ИИ помогает команде проверять отчеты и группировать те из них, которые имеют общую первопричину, но окончательное решение по каждому вопросу принимает человек, он же работает над каждым патчем.

Утечка и нарушение порядка раскрытия информации

Координированное раскрытие этих уязвимостей шло успешно вплоть до момента за 2 дня до запланированной даты релиза.

Во вторник, 20 октября, примерно в 15:00 UTC, два идентификатора CVE начали циркулировать на онлайн-форумах и в социальных сетях. Они сопровождались неверным временем релиза и неверной оценкой по шкале CVSS в 10.0 (реальная оценка составляет 9.2). Никаких технических деталей не утекло. В ответ на это проект PHP перенес предварительное объявление на более ранний срок и опубликовал его в 19:30 UTC. Дата релиза также была перенесена с 22 октября, 14:00 UTC, на 21 октября, 14:00 UTC. Дистрибьюторы все еще занимались упаковкой исправлений, поэтому немедленный релиз оставил бы многих пользователей без простого способа обновиться. Перенос релиза на один день вперед стал лучшим компромиссом между быстрыми действиями, предоставлением людям времени на подготовку и обеспечением простого пути обновления для всех после раскрытия уязвимостей.

В результате утечки и предварительного объявления примерно в 20:00 UTC компания Calif, одна из фирм по безопасности, сообщивших об уязвимостях, по ошибке опубликовала видео. На нем демонстрировалась работа их PoC-эксплойта против ряда целей, а также раскрывались несколько дополнительных, хотя и ограниченных деталей об уязвимостях. Копии удаленного видео вскоре начали распространяться в социальных сетях. Видео способствовало ускоренной разработке различных PoC (концептов доказательства уязвимости), что привело к их более активному распространению 21 октября.

Рекомендации по смягчению последствий (митигации), которые мы начали предоставлять некоторым провайдерам критической инфраструктуры примерно 20 октября в 23:00 UTC, также могли утечь. Команда безопасности PHP внимательно отслеживала и изучала появлявшиеся после утечки PoC, но на момент релиза / публичного раскрытия не выявила ни одного рабочего эксплойта.

21 октября в 07:41 UTC, более чем за шесть часов до координированного релиза, компания Chainguard в одностороннем порядке нарушила режим эмбарго и опубликовала собранные образы, содержащие исправление. Как и другие дистрибьюторы, Chainguard получила патч заранее, чтобы ее пользователи могли обновиться в момент раскрытия уязвимостей. Теперь любой злоумышленник мог изучить исправление в бинарном виде, в то время как все остальные пользователи PHP все еще ждали релиза. Это перечеркнуло недели работы многих сторон, направленной на координированное раскрытие информации.

Осторожно оптимистичный взгляд в будущее

Сегодняшний релиз демонстрирует прогресс, которого мы добиваемся в организации работы с безопасностью PHP. Как только в августе стало понятно все масштабы влияния проблемы с OOM, команда безопасности, фонд и релиз-менеджеры подготовили исправление этой глубоко укоренившейся проблемы для всех поддерживаемых веток, а дистрибьюторы и поставщики LTS-версий получили патч заблаговременно, чтобы их пользователи могли быстро обновиться.

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

Что нам нужно от вас

На PHP работает значительная часть интернета, включая государственные службы, интернет-магазины, банки, медиасайты и большую часть ПО, на которое компании полагаются каждый день. Тем не менее, работа по безопасности самого PHP по-прежнему зависит от небольшой группы разработчиков, финансируемых фондом, и небольшой помощи волонтеров.

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

Важнейшая часть миссии PHP Foundation — увеличить число инженеров с глубокими знаниями кодовой базы PHP и предоставить команде безопасности необходимые ресурсы. Мы можем достичь этой цели только при финансовой поддержке тех, кто зависит от PHP:

  • Компании, создающие продукты и сервисы на PHP: пожалуйста, спонсируйте PHP Foundation на уровне, который отражает вашу степень зависимости от платформы.
  • Хостинг-провайдеры, облачные платформы и дистрибьюторы, поставляющие PHP миллионам пользователей.
  • Государства и общественные институты, чьи сервисы работают на PHP. Финансирование аудита 2024 года со стороны немецкого агентства Sovereign Tech Agency показывает, чего способны добиться государственные инвестиции, и нам нужно больше подобных инициатив на постоянной основе.

Спонсорство PHP Foundation — это самый прямой способ гарантировать, что такие системные проблемы, как уязвимость OOM, будут решаться устойчивым образом до того, как они превратятся в чрезвычайные происшествия. Станьте спонсором на странице thephp.foundation/sponsor, а если ваша организация хочет обсудить более крупное партнерство, свяжитесь с нами.

Спасибо

Спасибо команде безопасности PHP, волонтерам и подрядчикам PHP Foundation, релиз-менеджерам и мейнтейнерам пакетов в дистрибьюторах и у LTS-вендоров, которые сделали эти релизы возможными. Спасибо Calif, особенно Райану А (Ryan A), Wiz, OpenAI Codex Security, особенно Эми Бернетт (Amy Burnett), OSTIF и Quarkslab за их исследования и ответственное раскрытие информации; Alpha-Omega, OpenAI и Anthropic за предоставление команде доступа к своим инструментам и финансирование части работ по безопасности; Sovereign Tech Agency за финансирование аудита 2024 года; а также всем нашим спонсорам, чья поддержка сделала эту работу возможной.