Если на твоих серверах крутится хотя бы один сервис на PHP — будь то корпоративный портал, интернет-магазин, API на Laravel или монолит на WordPress — бросай текущие дела и проверяй версию интерпретатора. Мейнтейнеры ядра PHP совместно с организацией The PHP Foundation выпустили синхронный внеплановый пакет обновлений безопасности для всех поддерживаемых линеек: PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35.
Повод для экстренного релиза предельно серьезный: устранены две критические уязвимости удаленного выполнения произвольного кода без аутентификации (CVE-2026-109618 и CVE-2026-109619). Обе получили сокрушительную оценку 9.2 балла по шкале CVSS v4.
Атакующему не нужны учетные данные, логины или доступ к закрытым панелям. Достаточно отправить специально подготовленный сетевой запрос на любой публичный URL сайта, чтобы получить контроль над системным процессом воркера.
Давай разберём, как устроены эти бреши «под капотом» ядра Zend Engine и почему стандартные фаерволы приложений (WAF) перед ними бессильны.
Анатомия брешей: повреждение памяти OOM и призрак чужого запроса
Обе уязвимости кроются в низкоуровневых слоях управления оперативной памятью рантайма, однако механика их срабатывания различается.
Первая уязвимость (CVE-2026-109618) активируется при возникновении ошибки нехватки памяти (Out-of-Memory, OOM) во время разбора входящего тела HTTP-запроса (например, при загрузке файлов через multipart/form-data). В этот момент ядро Zend Engine вызывало обработчик нештатных ситуаций через системный вызов longjmp(), грубо прерывая штатную цепочку деструкторов. В результате внутренние хэш-таблицы и буферы оставались частично инициализированными. При последующем обращении рантайм читал мусорные байты как валидные указатели на объекты, что позволяло злоумышленнику перезаписать адреса команд и выполнить бинарный код.
Вторая уязвимость (CVE-2026-109619) бьет по долгоживущим рабочим процессам (worker pooling в PHP-FPM или worker mode в FrankenPHP), где один и тот же процесс последовательно обслуживает сотни клиентских подключений. Из-за сбоя в процедуре сброса контекста (php_request_shutdown) фатальная ошибка в первом запросе оставляла глобальные указатели ссылающимися на освобожденную область памяти (классический Use-After-Free). Следующий входящий запрос злоумышленника мог переиспользовать этот «висячий» указатель и переписать таблицу символов ядра.
Как мы отмечали в анализе механики исчерпания памяти в ядре PHP, ошибки управления состоянием в долгоживущих процессах превращаются в идеальный плацдарм для эксплойтов.
Зона максимального риска: почему mod_php падает до старта приложения
Среди всех вариантов развертывания эксперты по информационной безопасности выделили классическую связку Apache с модулем mod_php как наиболее беззащитную.
Дело в том, что в mod_php эксплойт срабатывает на этапе синтаксического разбора заголовков и параметров запроса самим модулем веб-сервера — до того, как управление передается коду твоего приложения. Никакие программные проверки, экранирование входных данных, кастомные middleware в Laravel или плагины безопасности в WordPress физически не успевают выполниться.
Более того, Web Application Firewall (WAF) не спасает положение: триггером выступают не характерные строки SQL-инъекций или теги XSS, а манипуляции размерами чанков и структурой бинарных заголовков.
Матрица обновлений и дедлайн для ветки PHP 8.2
Обновления уже опубликованы на официальном сайте PHP и собраны в официальных репозиториях для большинства дистрибутивов Linux (PPA Ондржея Суры для Ubuntu/Debian, репозиторий Remi для RHEL/AlmaLinux/Rocky).
Сводная матрица версий:
- PHP 8.5: пропатчен до
8.5.12; - PHP 8.4: пропатчен до
8.4.27; - PHP 8.3: пропатчен до
8.3.36; - PHP 8.2: пропатчен до
8.2.35.
Обрати особое внимание на PHP 8.2: официальная поддержка безопасности этой ветки завершается 31 декабря 2026 года. Это один из последних официальных бинарных патчей для 8.2, и если твои проекты все еще живут на этой ветке, пора форсировать миграцию на PHP 8.3 или 8.4.
Для старых линеек (PHP 8.1, 8.0, 7.4) официальных бесплатных патчей нет: эти ветки давно вышли в статус End-Of-Life (EOL), и защитить такие серверы можно только через платные подписки расширенной поддержки дистрибутивов (Ubuntu Pro, Red Hat Enterprise Linux) либо самостоятельным бэкпортированием C-патчей в исходники.
Критически важное напоминание: после обновления пакетов через apt upgrade или dnf update обязательно выполни полный перезапуск сервиса:
sudo systemctl restart php-fpm
Без физического перезапуска процесса старые уязвимые бинарники останутся висеть в оперативной памяти сервера, и система продолжит оставаться открытой для атак. Обновляйся не откладывая.
