Безопасность

В PHP знали об одной из уязвимостей ещё в 2024 году, но так и не смогли согласовать исправление

PHP Foundation весьма откровенно рассказала о чрезвычайной ситуации, которая привела к выпуску исправлений на этой неделе. Фонд сообщил, что обнаружил одну из двух критических уязвимостей ещё два года назад, в 2024 году. Затем несколько месяцев не мог договориться о том, как её устранить.

В PHP знали об одной из уязвимостей ещё в 2024 году, но так и не смогли согласовать исправление

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

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

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

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

А потом информация просочилась

После утечки события стали развиваться быстрее. 20 октября около 15:00 UTC на форумах и в социальных сетях начали распространяться два идентификатора CVE. При этом указывались неверное время выпуска исправления и неверная оценка серьёзности — 10,0. На самом деле она составляет 9,2. На тот момент технические подробности не утекли.

PHP Foundation перенесла публикацию своего объявления на более ранний срок. Выпуск исправления также сдвинули на день — с 22 на 21 октября. Дистрибьюторы ещё собирали пакеты с исправлением, пояснил фонд. Если бы его выпустили сразу, многим пользователям было бы трудно обновиться.

Затем произошли ещё два сбоя. Около 20:00 UTC компания Calif, сообщившая об уязвимостях, по ошибке опубликовала видео. В нём демонстрировалась работа эксплойта с подтверждением концепции компании на реальных целях. Calif удалила ролик, но его копии разошлись по сети. По словам PHP Foundation, это ускорило появление общедоступного кода эксплойта на следующий день.

Затем эмбарго нарушил поставщик. Более чем за шесть часов до выпуска Chainguard опубликовала собранные образы с исправлением. Как и другим дистрибьюторам, компании заранее передали патч, чтобы её пользователи могли сразу обновиться. Но преждевременная публикация позволила любому злоумышленнику изучить исправление в бинарном виде, пока остальные ждали.

«Это перечеркнуло недели работы многих участников над согласованным раскрытием информации», — написала PHP Foundation.

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

Оплатить инфраструктуру

Эта запись стала и призывом к финансовой поддержке. По словам PHP Foundation, PHP работает на значительной части веб-сайтов. Среди них — государственные сервисы, интернет-магазины и банки. Однако работу над безопасностью ведёт небольшая группа разработчиков, финансируемых фондом, при небольшой помощи добровольцев. Инструменты ИИ теперь помогают находить уязвимости быстрее, чем когда-либо, — как злоумышленникам, так и специалистам по защите.

Сообщения об уязвимостях продолжают поступать. С начала июля команда опубликовала сведения о 15 CVE. Ещё более сотни сообщений были рассмотрены и признаны недействительными или дублирующими уже известные.

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

Изменение подхода к работе

PHP Foundation уже изменила порядок работы. В мае она создала команду по безопасности экосистемы, а летом наняла ещё двух инженеров. Кроме того, фонд переходит от принятия решений консенсусом к голосованию большинством. Он также активно использует ИИ. Ранее в этом году фонд проверил PHP с помощью Claude Mythos от Anthropic, а позднее добавил Daybreak от OpenAI для проверки сообщений об уязвимостях.

Эти события показали, насколько тесно стало в этой области. Calif начала аудит 30 июля в рамках программы OpenAI Patch the Planet. Её исследователь Райан А сообщил об уязвимости 11 августа. По словам PHP Foundation, в тот же день OpenAI независимо сообщила о той же первопричине. Фонд добавил, что теперь уверен: если уязвимость застрянет из-за сложного выбора между компромиссами, информация о ней гораздо быстрее дойдёт до руководства, а работа не будет месяцами стоять на месте.

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

PHP Foundation (@ThePHPF) 21 октября 2026 года

Опубликовано 21 октября 2026 - 09:02 Наверх