Резюме для руководства
- Специалисты Wiz Research обнаружили несколько критических уязвимостей в ядре PHP, популярного языка сценариев общего назначения, на котором работает 70% всех веб-сайтов в мире. Успешная эксплуатация может позволить злоумышленникам получить контроль над уязвимыми серверами, украсть конфиденциальные данные и обезобразить работающие на них сайты.
Специалисты Wiz Research обнаружили несколько критических уязвимостей в ядре PHP, популярного языка сценариев общего назначения, на котором работает 70% всех веб-сайтов в мире. Успешная эксплуатация может позволить злоумышленникам получить контроль над уязвимыми серверами, украсть конфиденциальные данные и обезобразить работающие на них сайты.
- PHP является основой интернета: это язык программирования, на котором работают WordPress, Joomla, Drupal, MediaWiki от Википедии и многие другие платформы.
PHP является основой интернета: это язык программирования, на котором работают WordPress, Joomla, Drupal, MediaWiki от Википедии и многие другие платформы.
- Эти уязвимости включают утечку памяти и неаутентифицированное удаленное выполнение кода в самом PHP, независимо от запущенного поверх него приложения, что подвергает каждый уязвимый веб-сайт немедленному риску.
Эти уязвимости включают утечку памяти и неаутентифицированное удаленное выполнение кода в самом PHP, независимо от запущенного поверх него приложения, что подвергает каждый уязвимый веб-сайт немедленному риску.
- Каждая версия PHP, выпущенная за последнее десятилетие, подвержена как минимум одной из этих уязвимостей, начиная с версии 5.4. Злоумышленники могут использовать их удаленно, в некоторых случаях довольно легко. Настоятельно рекомендуется немедленная установка патчей.
Каждая версия PHP, выпущенная за последнее десятилетие, подвержена как минимум одной из этих уязвимостей, начиная с версии 5.4. Злоумышленники могут использовать их удаленно, в некоторых случаях довольно легко. Настоятельно рекомендуется немедленная установка патчей.
- 21 октября 2026 года разработчики PHP выпустили патч, устраняющий множество уязвимостей безопасности памяти в ядре.
21 октября 2026 года разработчики PHP выпустили патч, устраняющий множество уязвимостей безопасности памяти в ядре.
- Эти находки входят в число самых серьезных уязвимостей, когда-либо обнаруженных в PHP, и, возможно, в истории программного обеспечения. Лежащие в их основе недостатки существовали десятилетиями, но демонстрация возможности их эксплуатации требовала исключительно сложной цепочки шагов, находящейся на грани практических возможностей человеческих исследователей. Передовые модели ИИ существенно снизили этот барьер, превратив давний недостаток в эксплойт.
Эти находки входят в число самых серьезных уязвимостей, когда-либо обнаруженных в PHP, и, возможно, в истории программного обеспечения. Лежащие в их основе недостатки существовали десятилетиями, но демонстрация возможности их эксплуатации требовала исключительно сложной цепочки шагов, находящейся на грани практических возможностей человеческих исследователей. Передовые модели ИИ существенно снизили этот барьер, превратив давний недостаток в эксплойт.
Обзор
В этой публикации мы объясняем, как передовой ИИ помог нам найти и исправить уязвимости, которые оставались скрытыми в кодовой базе PHP более десятилетия. Описанные ниже проблемы проистекают из ключевых архитектурных решений, некоторые из которых были приняты более десяти лет назад, и были объявлены под двумя идентификаторами CVE с уровнем опасности до 10 по шкале CVSS. Эта работа переросла в межотраслевую инициативу по защите клиентов, поиску вариантов, развертыванию средств обнаружения и минимизации рисков, а также проверке патча к моменту скоординированного раскрытия информации.
Практически каждая версия PHP подвержена хотя бы одной из этих проблем, включая релизы, начиная с PHP 5.4. Уязвимости могут позволить неаутентифицированным злоумышленникам выполнять код на уязвимых серверах или считывать конфиденциальную память процессов. Эта память может содержать пароли, токены аутентификации, ключи API и сертификаты, принадлежащие другим запросам или самому серверу.
PHP — это язык программирования, лежащий в основе большей части интернета; на нем работают WordPress, Drupal и MediaWiki (программное обеспечение, на котором работает Википедия). Сбой в его ядре может затронуть веб-сайты по всей этой экосистеме, даже если код их собственного приложения защищен.
Некоторые уязвимости становятся поворотными точками, поскольку они ставят под сомнение фундаментальные предположения о безопасности. В 2014 году Heartbleed обнажил хрупкость общей инфраструктуры, обеспечивающей безопасность интернета. В 2021 году Log4Shell показала, как глубоко внедренные программные зависимости могут создавать широко распространенные проблемы, которые организации с трудом могут обнаружить. Мы считаем, что PHP2Shell может стать аналогичной поворотной точкой для эпохи ИИ, иллюстрируя, как ИИ может изменить практическую эксплуатируемость давних уязвимостей. Создание эксплойта потребовало объединения нескольких изъянов в цепочку и адаптации к макету памяти каждой цели посредством многократного тестирования и отладки. Передовые модели сыграли решающую роль в практической реализации этого процесса, позволив нам разрабатывать и адаптировать работающие эксплойты для нескольких приложений за считанные часы. Поскольку время и опыт, необходимые для этой работы, сокращаются, сложность может перестать быть значимым барьером, изменяя то, как мы определяем уязвимость на практике.
Wiz Research выражает благодарность команде PHP, компании Calif и OpenAI за их работу по обнаружению, координации и проверке патчей. OpenAI и Calif также опубликовали блоги, содержащие подробную информацию об уязвимости: ее историю, технические детали и сведения о процессе раскрытия. PHP также сделала публикацию.
Мы также хотели бы выразить искреннюю благодарность компаниям Automattic, Akamai, AWS, Cloudflare, Fastly, Google, Imperva, Microsoft, Vercel и многим другим за помощь в подготовке руководств и готовых средств минимизации рисков для клиентов, которые не могут установить патч немедленно.
Чем может помочь Wiz?
Клиентам Wiz следует обратиться к бюллетеню Wiz Threat Intel Center для PHP2Shell, который включает встроенные средства обнаружения уязвимостей без агентов и в среде выполнения, обнаружение эксплуатации через Wiz Defend и Sensor, а также автоматические политики реагирования наряду с рекомендациями по устранению последствий и поиску угроз.
Клиенты Sensor также могут включить встроенную политику реагирования для автоматического завершения процессов, демонстрирующих поведение, типичное для эксплуатации PHP2Shell:
Уязвимости
Все раскрытые уязвимости связаны с безопасностью памяти и проистекают из ошибок в том, как PHP обрабатывает фатальные ошибки при обработке запросов, в частности ошибки нехватки памяти (out-of-memory). Эти ошибки могут оставлять поврежденное внутреннее состояние PHP после неожиданного завершения запроса. Последующий запрос или воркер может повторно использовать это устаревшее состояние, что приведет к утечке или повреждению памяти.
Ниже вы можете найти таблицу, которая демонстрирует, какой тип воздействия был продемонстрирован каждым из багов, о которых мы сообщили разработчикам PHP. Перечисленные ниже приложения — это цели, которые мы выбрали для демонстрации RCE. Это репрезентативные цели: для эксплуатации не обязательно использовать одну из этих CMS, так как уязвимый код находится в самом PHP.
Использование освобожденной памяти (use-after-free) в десериализаторе прогресса загрузки
Удаленная утечка памяти процесса
Повреждение памяти процесса и выполнение кода
Неаутентифицированная утечка памяти воркера PHP
RCE до аутентификации в WordPress, Drupal и Joomla
Удаленная утечка памяти, не зависящая от приложения
Использование освобожденной памяти (use-after-free) в трассировке фатальных ошибок
Путаница типов (type confusion) в OPcache
Повреждение памяти процесса и выполнение кода
Повреждение общего состояния PHP и выполнение кода
RCE в Drupal до аутентификации
RCE в WordPress до аутентификации
Хотя в этом блоге рассматриваются только четыре случая эксплуатируемых ошибок (сгруппированных под двумя CVE), следующих этому проблемному паттерну, в кодовой базе PHP есть и другие отслеживаемые, а также, вероятно, не отслеживаемые варианты этой проблемы. Эти варианты имеют разные требования для эксплуатации и могут приводить к различным типам последствий. В любом случае, патч, предоставленный командой PHP, устраняет проблему в ее основе и ликвидирует все варианты в пропатченном релизе.
Влияние
Мы объединили эти уязвимости в единый эксплойт-скрипт php2shell и продемонстрировали, что он может удаленно выполнять код без аутентификации на развертываниях WordPress (wordpress:latest), Drupal (drupal:latest) и Joomla (joomla:latest), используя их последние образы контейнеров на момент тестирования.
Эти платформы иллюстрируют масштаб последствий, но сами уязвимости находятся в самом PHP. Эксплуатация не зависит от изъянов в коде приложения: даже простое приложение «Hello World», работающее на уязвимой версии PHP, может быть подвержено риску.
Отдельно мы продемонстрировали, что злоумышленники могут считывать конфиденциальные данные из памяти процесса PHP, включая пароли, токены и ключи API, без необходимости достижения удаленного выполнения кода.
Демонстрации PHP2Shell с Wordpress, Joomla и Drupal:
Поворотный момент ИИ
Уязвимый код присутствовал более десятилетия. Превращение этих недостатков в работающие эксплойты требовало связывания нескольких ошибок и учета того, как PHP выделяет и повторно использует память между запросами. Ошибки памяти известны своей сложностью; различия в версиях PHP, конфигурациях и поведении приложений могут нарушить предположения, на которых строится эксплойт. Атака, которая работает против одного развертывания, может потребовать существенных корректировок для работы против другого, причем каждая из них требует дальнейшего анализа, тестирования и отладки. До наступления эры ИИ эту ручную работу было бы трудно реализовать и еще труднее масштабировать.
С появлением ИИ это больше не является препятствием. LLM могут помочь адаптировать эксплойт к различным версиям PHP, конфигурациям и структурам памяти. С помощью инструментов тестирования и отладки модели могут анализировать сбои и итеративно вносить корректировки, снижая объем работы специалистов, требующийся для каждой цели. Это значительно снижает барьер для масштабирования атак на различные развертывания.
Это меняет экономику как обнаружения, так и эксплуатации. Поскольку ИИ снижает усилия, необходимые для разработки и адаптации сложных эксплойтов, уязвимости, которые раньше казались непрактичными для эксплуатации, становятся реальными целями.
В ходе этого исследования мы использовали Wiz Atlas, Gemini 4 Argon и GPT-5.6 Sol. Примечательно, что Gemini 4 Argon внес неоценимый вклад в обнаружение уязвимости, разработку эксплойта, обнаружение атак и валидацию патча.
Используя Gemini 4 Argon, команда Wiz показала, почему передовой ИИ меняет правила игры в сфере кибербезопасности. Более десяти лет эти критические уязвимости оставались без внимания, поскольку обнаружение уязвимостей и их эксплуатация были невероятно сложны. Мы рады видеть, как Gemini 4 Argon помогает защитникам преодолеть этот разрыв, находя уязвимости и помогая их исправлять.Ралука Ада Попа (Raluca Ada Popa), руководитель направления безопасности Gemini, Google DeepMind
Используя Gemini 4 Argon, команда Wiz показала, почему передовой ИИ меняет правила игры в сфере кибербезопасности. Более десяти лет эти критические уязвимости оставались без внимания, поскольку обнаружение уязвимостей и их эксплуатация были невероятно сложны. Мы рады видеть, как Gemini 4 Argon помогает защитникам преодолеть этот разрыв, находя уязвимости и помогая их исправлять.
Ралука Ада Попа (Raluca Ada Popa), руководитель направления безопасности Gemini, Google DeepMind
Отраслевое сотрудничество
До публичного раскрытия информации Wiz Research работала с командой PHP, Calif и OpenAI над вопросами обнаружения, координации и проверки патчей. Мы также сотрудничали с Google Cloud, Cloudflare, AWS, Microsoft, Automattic, Fastly, Akamai, Imperva, Vercel и многими другими компаниями для подготовки рекомендаций для клиентов, средств обнаружения и готовых средств защиты для организаций, которые не могут выполнить обновление немедленно.
Уязвимость в ядре PHP затрагивает гораздо больше, чем одно отдельное приложение. PHP работает в облаках, у хостинг-провайдеров, сетей доставки контента и на миллионах независимо управляемых серверов. Снижение уровня воздействия до того, как технические детали стали публичными, потребовало скоординированной работы всей этой экосистемы.
Технический глубокий анализ
Ошибка: Use-after-free в механизме десериализации данных о прогрессе загрузки
Модуль сессий PHP может декодировать данные сессии во время обработки прогресса загрузки в том же окне предварительной инициализации. Декодер сохраняет принадлежащую запросу служебную информацию в BG(unserialize). Фатальный сбой выделения памяти может прервать этот путь, уничтожить кучу запроса и оставить глобальное состояние десериализации опубликованным.
В последующем запросе, обрабатываемом тем же воркером, PHP может использовать перехваченную злоумышленником память в качестве активной служебной информации десериализатора. Устаревшее состояние становится мощным примитивом повреждения памяти. Мы объединили его с раскрытием памяти для устранения неопределенности адресов и добились удаленного выполнения кода без аутентификации в WordPress, Drupal и Joomla.
Цепочки для WordPress, Drupal и Joomla являются репрезентативными демонстрациями. Базовые примитивы существуют на уровне движка PHP и могут затрагивать любое приложение PHP, работающее на уязвимой версии.
Эти проблемы выполняются ниже уровня приложения, поэтому логи приложения могут содержать мало контекста. До тех пор, пока системы не будут пропатчены, защитникам следует уделять особое внимание необычным многочастным (multipart) запросам, за которыми следуют ошибки лимита памяти или повторяющиеся ответы HTTP 500, неожиданно большим или некорректным ответным кукам PHPSESSID, а также необъяснимым перезапускам воркеров PHP. Эти сигналы могут помочь в расследовании. Применение обновления безопасности PHP остается единственным полноценным средством устранения уязвимости.
Ошибка: Удаленное раскрытие памяти процесса
PHP парсит многочастные запросы RFC1867 во время запуска запроса, до завершения нормальной инициализации модулей. Обработка прогресса загрузки сессии может инициализировать состояние сессии на этом раннем этапе и опубликовать идентификатор сессии в PS(id). Ошибка нехватки памяти может прервать запрос до завершения очистки. Затем PHP уничтожает кучу запроса и может оставить PS(id) указывающим на освобожденную область памяти.
Последующий многочастный запрос, обрабатываемый тем же воркером, может достичь пути очистки прогресса загрузки до того, как нормальная инициализация сессии сбросит этот указатель. PHP доверяет устаревшему указателю и длине как активной структуре zend_string и кодирует содержимое повторно занятой кучи в URL-формате в ответную куку PHPSESSID. Атака работает даже тогда, когда приложение никогда не вызывает session_start(), что делает проблему независимой от приложения. Мы продемонстрировали неаутентизированное раскрытие области активной памяти воркера размером с запрос злоумышленника, содержащей данные из-за пределов запроса злоумышленника.
Ошибка: Use-after-free в трассировке стека при фатальной ошибке
В уязвимых версиях PHP сохраняет трассировку стека последней фатальной ошибки в EG(last_fatal_error_backtrace). Фатальная ошибка исчерпания памяти (out-of-memory) может уничтожить кучу запроса без аннулирования этого глобального для исполнителя значения. Воркер продолжает работу с глобальной переменной, которая все еще указывает на память из предыдущего запроса.
Если тот же воркер выдает диагностическое сообщение в начале следующего запроса, он может обратиться к указателю до того, как исполнитель инициализирует это состояние заново. Затем PHP уничтожает или обновляет повисшую в воздухе трассировку стека и обращается к памяти, повторно задействованной злоумышленником. Полученное межзапросное использование памяти после освобождения (use-after-free) может быть развито в контролируемое повреждение памяти. Мы продемонстрировали неаутентифицированное удаленное выполнение кода против Drupal с использованием этого примитива.
Баг: путаница типов в OPcache
OPcache сохраняет скомпилированные структуры PHP в разделяемой памяти и назначает индексы в картах времени выполнения для каждого воркера (per-worker runtime-pointer maps). Воркеры координируют эти индексы через общую границу (shared frontier). Во время функции zend_accel_script_persist() PHP продвигает локальную для процесса границу CG(map_ptr_last). Он публикует соответствующую общую границу только после завершения сохранения. Сбой выделения памяти между этими двумя событиями оставляет локальное для процесса продвижение на месте, а частично сохраненные объекты начинают ссылаться на слоты, которые разделяемое состояние все еще считает доступными.
Когда другой воркер позже повторно использует один из этих слотов для другого объекта времени выполнения, устаревшие разделяемые метаданные разрешаются в указатель неверного типа. Это несоответствие создает межворкерную путаницу типов и повреждает разделяемое состояние OPcache. Мы использовали этот примитив для построения неаутентифицированной цепочки RCE против WordPress.
Существуют и другие варианты помимо этих четырех багов. Хотя изначально мы сообщили PHP об этих четырех, в ходе данного исследования мы поняли, что уязвимость глубоко укоренена в кодовой базе PHP и потребует комплексного исправления. Другие варианты также должны подпадать под те же два CVE.
Заключение
Учитывая, что затронуто 70% интернета, масштабы влияния PHP2Shell невозможно переоценить. Это знаменует собой переломный момент в области искусственного интеллекта. Уязвимый код находился там более десятилетия — то, что изменил ИИ, — это способность понимать уязвимости и превращать их в рабочий эксплойт. Используя передовые модели ИИ и правильные инструменты, один исследователь за неделю выполнил то, на что у команды мирового уровня ранее ушли бы месяцы работы.
Это меняет экономику как обнаружения, так и эксплуатации. Уязвимости, которые раньше казались непрактичными для эксплуатации, становятся жизнеспособными целями. Эти же возможности дают защитникам шанс обнаружить и исправить изъяны, которые пережили годы проверок.
Wiz использовала Wiz Atlas, Gemini 4 Argon и GPT-5.6 Sol на протяжении всего этого исследования, причем Argon внес особенно значительный вклад в поиск уязвимости и помощь в ее устранении.
Возможность заключается в том, чтобы сделать эту работу рутинной: систематически находить изъяны в существующем ПО и отлавливать новые до того, как они попадут в продакшен. Наши совместные усилия с PHP, OpenAI и Calif приближают эту цель, применяя ИИ для укрепления программных фундаментов, которые мы все разделяем.
Хронология ответственного раскрытия информации
- 19 августа 2026 г.: Wiz Research обнаруживает первую уязвимость в PHP с помощью Wiz Atlas, Gemini 4 Argon и GPT-5.6 Sol.
19 августа 2026 г.: Wiz Research обнаруживает первую уязвимость в PHP с помощью Wiz Atlas, Gemini 4 Argon и GPT-5.6 Sol.
- 20 августа 2026 г.: Подтверждено неаутентифицированное удаленное выполнение кода (RCE) против Drupal.
20 августа 2026 г.: Подтверждено неаутентифицированное удаленное выполнение кода (RCE) против Drupal.
- 21 августа 2026 г.: Подтверждено неаутентифицированное удаленное выполнение кода (RCE) против WordPress.
21 августа 2026 г.: Подтверждено неаутентифицированное удаленное выполнение кода (RCE) против WordPress.
- 24 августа 2026 г.: Wiz Research сообщает об уязвимостях команде безопасности PHP.
24 августа 2026 г.: Wiz Research сообщает об уязвимостях команде безопасности PHP.
- 21 сентября 2026 г.: PHP подтверждает получение отчетов и начинает разработку скоординированного исправления.
21 сентября 2026 г.: PHP подтверждает получение отчетов и начинает разработку скоординированного исправления.
- 21 октября 2026 г.: Становится доступны пропатченные версии PHP.
21 октября 2026 г.: Становится доступны пропатченные версии PHP.
- 21 октября 2026 г.: Публичное раскрытие информации.
21 октября 2026 г.: Публичное раскрытие информации.
Оставайтесь на связи
Всем привет! Мы — Саги Тзадик, Шир Тамари, Нир Охфельд и Томер Шварц из исследовательской группы Wiz Research (@wiz_io). Мы — группа опытных белых хакеров с единой целью: сделать облако более безопасным местом для всех. Мы сосредоточены на поиске новых векторов атак в облачном ПО и обнаружении проблем изоляции в системах, от которых зависят организации. Мы будем рады услышать вас в X или по адресу research@wiz.io.











