Срочное обновление PHP: что проверить на вашем сервере

Что случилось
21 октября PHP выпустил исправления двух критических уязвимостей, обе оценены в 9.2 по CVSS v4.0. Через них можно выполнить код на сервере без авторизации, одним запросом к сайту. Подробности — в бюллетене PHP.
- CVE-2026-109618 — повреждение данных при нехватке памяти: PHP может прерваться, когда данные запроса ещё не готовы, и потом принять их за корректные.
- CVE-2026-109619 — устаревшее состояние: данные одного запроса переживают его и попадают в следующий, который обрабатывает тот же процесс.
По словам PHP, выше всего риск у Apache с mod_php: для него показан эксплойт, который срабатывает раньше, чем запускается код сайта. О реальных атаках на момент публикации не сообщалось.
Кого касается
Всех, у кого PHP обрабатывает веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP, LiteSpeed. На практике это сайты и интернет-магазины, WordPress, Bitrix и другие CMS, панели управления и приложения на PHP, контейнеры с PHP. Если PHP на сервере нет, делать ничего не нужно.
Как проверить
php -v— версия PHP в командной строке.php-fpm -vили, в Debian и Ubuntu,php-fpm8.3 -vс вашей версией — PHP-FPM, через него работают сайты на nginx.apache2ctl -M | grep -i phpв Debian и Ubuntu илиhttpd -M | grep -i phpв AlmaLinux и Rocky Linux — модуль PHP в Apache.docker ps --format '{{.Image}}'— образы контейнеров: ищите php, wordpress и другие образы на PHP.
Как обновить
- Debian и Ubuntu:
apt update && apt upgrade. Дистрибутивы получили исправления заранее. Это обновит и PHP из репозитория Ondřej Surý, если он подключён. - AlmaLinux и Rocky Linux:
dnf upgrade 'php*'. Если PHP стоит из репозитория Remi — сегодня обновлений там не будет, так пишет сам PHP. Он советует перейти на пакеты дистрибутива или собрать PHP из исходников; до обновления включите временные меры ниже. - После обновления перезапустите PHP-FPM:
systemctl restart php8.3-fpmс вашей версией в Debian и Ubuntu илиsystemctl restart php-fpmв AlmaLinux и Rocky Linux. Если PHP работает модулем Apache — перезапустите его:systemctl restart apache2илиsystemctl restart httpd. - PHP из панели управления обновите средствами самой панели.
Дистрибутивы собирают PHP сами и переносят исправления в свои пакеты, поэтому номер версии в системе может не совпадать с php.net. Главное — чтобы 21 октября или позже пришло обновление пакетов PHP.
Docker
- Официальные образы: когда выйдут исправленные теги —
docker compose pull && docker compose up -d. - Свои образы на основе php: пересоберите со свежей основой —
docker compose build --pull && docker compose up -d.
Если обновиться сразу нельзя
PHP перечисляет временные меры. Они закрывают только подтверждённые пути атаки и не делают сервер безопасным — полностью защищает только обновление.
session.upload_progress.enabled = 0в php.ini или в настройках пула FPM, затем перезапустить все процессы PHP. Черезini_set()и.user.iniне работает.post_max_size = 8M, если сайту не нужна загрузка файлов, или 32M, если нужна;upload_max_filesize— меньше этого значения.- Остальные меры, в том числе для PHP 8.5, — в бюллетене PHP.
Исправленные версии
Исправления вошли в PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35. Для PHP 8.1 и более старых версий выпусков нет: PHP их больше не поддерживает. Команда PHP выложила минимальные исправления в исходниках для 7.4, 8.0 и 8.1 — для тех, кто собирает PHP сам, а готовые пакеты бывают у дистрибутивов и LTS-поставщиков. Такой сайт стоит перевести на актуальную ветку PHP.