PHP взломан, всё потеряно!?

—

от автора

Обнаружены две критические уязвимости удаленного выполнения кода (RCE) в PHP, отслеживаемых как CVE-2026-109618 и CVE-2026-109619 , публично раскрытых 21 октября 2026 года . Эти уязвимости позволяют злоумышленнику выполнять произвольный код на серверах, работающих под управлением PHP, что потенциально может привести к полной компрометации затронутой системы. Поскольку PHP используется в значительной части веб-технологий, включая WordPress, Drupal, Laravel и пользовательские приложения. 

Кто затронут?
Эти уязвимости затрагивают все версии PHP, начиная с PHP 5. Если вы используете PHP в своей инфраструктуре, в рабочих нагрузках DOKS, в приложениях App Platform или пользовательских контейнерах, или через образы Marketplace, доступные в один клик (WordPress, LAMP, LEMP, Laravel и т. д.) — вам следует считать себя потенциально подпадающим под действие уязвимости до тех пор, пока не будет выпущено исправление.

Исправленные версии PHP:

  • 8.5.12

  • 8.4.27

  • 8.3.36

  • 8.2.35

Важно отметить, что исправления доступны только для поддерживаемых в настоящее время версий PHP (8.2 и более поздних) . Если вы используете версию PHP, поддержка которой прекращена (8.1 или более ранняя), официальные исправления будут недоступны, и вам следует немедленно обновить PHP до поддерживаемой версии.

 Что вам следует сделать сейчас?

  1. Проведите инвентаризацию всех систем, на которых работает PHP в вашей инфраструктуре, включая установленные пакеты, которые вы, возможно, не считаете «PHP-серверами» (экземпляры WordPress и других CMS, административные панели, устаревшие приложения).

  2. Установите патч немедленно . Патчи для PHP доступны. Если вы используете такое программное обеспечение, как WordPress, Laravel или другие инструменты, созданные на PHP, вам могут потребоваться патчи, специфичные для этого программного обеспечения, непосредственно от соответствующих поставщиков. Обновление PHP до пропатченной версии — единственный безопасный вариант; полных мер защиты не существует, а демонстрационный код эксплойта находится в открытом доступе.

  3. Если вы используете PHP 8.1 или более раннюю версию, обновитесь до PHP 8.2+ , чтобы установить патч. Версии, поддержка которых прекращена, патчи не получат.

  4. Если вы не можете обновить PHP немедленно , Фонд PHP предложил меры, которые вы можете предпринять для снижения риска атак по определенным каналам. Это не гарантирует безопасность вашей установки PHP, и вам следует разработать план обновления как можно скорее. 

  5. Временно, по возможности, следует минимизировать риски : ограничить публичный доступ к PHP-приложениям, которые не требуют доступа из интернета, и обеспечить наличие правил брандмауэра/WAF и мониторинга.

Как именно проявляются эти уязвимости?

Обе уязвимости связаны с тем, как интерпретатор PHP управляет оперативной памятью и обрабатывает критические ошибки (в частности, нехватку памяти — Out-of-Memory / OOM, а также механизм сброса контекста через longjmp()):

  1. CVE-2026-109618 (Проблема с памятью при разборе запросов):

    • Суть: Когда PHP парсит входящий HTTP-запрос, он может зафиксировать определенные структуры данных как «готовые к использованию» до того, как все необходимые блоки памяти будут реально выделены.

    • Сбой: Если в этот момент происходит исчерпание памяти (OOM), PHP прерывает выполнение текущего запроса, но не откатывает уже созданное неполное состояние.

    • Проявление: Во время последующей очистки памяти интерпретатор начинает воспринимать неинициализированные или поврежденные участки памяти как валидные. Это приводит к повреждению памяти (memory corruption).

  2. CVE-2026-109619 (Уязвимость типа Use-After-Free):

    • Суть: У PHP есть глобальные структуры состояния (ошибки, сессии, объекты и т.д.), которые временно ссылаются на память конкретного запроса.

    • Сбой: При возникновении фатальных ошибок или аварийном завершении обработки запроса глобальные указатели могут остаться ссылаться на уже очищенные (освобожденные) области памяти.

    • Проявление: Это классическая уязвимость Use-After-Free. Следующие запросы, приходящие на сервер, могут обратиться к этой «уже освобожденной» памяти, что позволяет злоумышленнику манипулировать данными в памяти и добиться выполнения произвольного кода.

К чему это приводит на практике?

  • Удаленное выполнение кода (RCE): Злоумышленник, отправляя специально сформированные HTTP-запросы (часто автоматизированными скриптами), может вызвать нужную последовательность ошибок памяти.

  • Полная компрометация: Поскольку веб-сервер запускает PHP-процессы от определенного системного пользователя (например, www-data), успешная эксплуатация может позволить злоумышленнику читать/записывать файлы на сервере, выполнять системные команды и, при наличии других локальных уязвимостей, повысить свои привилегии до root.

ссылка на оригинал статьи https://habr.com/ru/articles/1099712/