21 октября 2026 года в PHP обнаружены две критические уязвимости (CVSS 9.2), позволяющие неаутентифицированному злоумышленнику выполнить произвольный код (RCE). Риск особенно высок для Apache с mod_php, где атака возможна до запуска кода приложения.
Обновление — единственное полное решение. Все временные меры лишь снижают риск и не делают сервер безопасным.
1. Поддерживаемые версии (обновление)
Обновите PHP до одной из исправленных версий:
| Ветка | Исправленная версия |
|---|---|
| 8.5 | 8.5.12 |
| 8.4 | 8.4.27 |
| 8.3 | 8.3.36 |
| 8.2 | 8.2.35 |
Через пакетный менеджер (рекомендуется)
# Debian / Ubuntu
sudo apt update && sudo apt install --only-upgrade php8.5 php8.4 php8.3 php8.2
# RHEL / AlmaLinux / Rocky Linux
sudo dnf upgrade --refresh 'php*'
Дистрибутивы и LTS-вендоры получили патчи заранее — проверьте changelog на упоминание CVE-2026-109618 / CVE-2026-109619. Для репозитория rpms.remirepo.net официальный бюллетень рекомендует перейти на пакеты дистрибутива или сборку из исходного кода.
После обновления обязательно перезапустите все службы PHP (FPM, Apache/LiteSpeed), чтобы новый бинарный файл загрузился в память. Уязвимость CVE-2026-109619 связана с сохранением состояния между запросами в рамках worker-процесса.
2. Неподдерживаемые версии (PHP 7.4, 8.0, 8.1)
Эти ветки не получают официальных обновлений безопасности. Однако, учитывая тяжесть уязвимостей, команда безопасности PHP опубликовала минимальные обратные порты (source-backports) для сборки из исходного кода.
Официальные патчи доступны в соответствующих ветках репозитория php-src:
- PHP 7.4: https://github.com/php/php-src/tree/PHP-7.4-CVE-2026-109618-109619
- PHP 8.0: https://github.com/php/php-src/tree/PHP-8.0-CVE-2026-109618-109619
- PHP 8.1: https://github.com/php/php-src/tree/PHP-8.1-CVE-2026-109618-109619
Ссылки на ветки — в официальном бюллетене PHP.
Порядок действий:
# 1. Клонируйте нужную ветку (пример для 8.1)
git clone --branch PHP-8.1-CVE-2026-109618-109619 https://github.com/php/php-src.git php-src-8.1-patched
cd php-src-8.1-patched
# 2. Соберите и установите PHP по стандартной процедуре
./buildconf --force
./configure --prefix=/opt/php-8.1-patched [ваши обычные опции]
make -j$(nproc)
sudo make install
Важно: минимальный патч отключает
session.upload_progress(индикатор прогресса загрузки файлов перестаёт работать), но обычныеmultipart/form-dataзагрузки продолжают функционировать.
Это временное решение. Версии 7.4/8.0/8.1 остаются EOL, и другие известные проблемы после последнего официального релиза остаются неисправленными.
3. Временные меры (если обновление или патч невозможны немедленно)
Эти настройки не устраняют уязвимости, но блокируют известные векторы атак. Применяйте только как отсрочку до обновления/патча.
Для CVE-2026-109618 (RCE через повреждение памяти при OOM):
- Снимите ограничение памяти:
memory_limit = -1. Установите способом, который приложение не сможет переопределить (например,php_admin_valueв пуле FPM или конфигурации Apache). Убедитесь, что ни один пул, каталог или настройка приложения не возвращает конечный лимит. - Ограничьте размер POST:
post_max_size = 8M(если загрузка файлов не нужна) или32M(если нужна).upload_max_filesizeдолжен быть меньшеpost_max_size. - Рассмотрите ограничение размера декодированного запроса и глубины вложенности на уровне веб-сервера или прокси.
Для CVE-2026-109619 (RCE через устаревшее глобальное состояние):
- Отключите прогресс загрузки:
session.upload_progress.enabled = 0. Настройка должна применяться до разбора запроса — черезphp.iniилиphp_admin_value, но не черезini_set()или.user.ini. - Для PHP 8.5:
fatal_error_backtraces = 0. - После изменения перезапустите все worker-процессы.
4. Проверка после обновления/патча
# 1. Проверьте версию
php -v
# 2. Если используется OPcache — очистите его
sudo kill -USR2 $(pgrep -f 'php-fpm.*master')
# или просто перезапустите PHP-FPM / Apache
Для проверки через веб-сервер временно создайте файл с <?php phpinfo(); и убедитесь, что отображается корректная версия.
Итоговый чек-лист
- Определены все системы, использующие PHP (FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed).
- Поддерживаемые версии обновлены до 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35.
- Для неподдерживаемых версий (7.4 / 8.0 / 8.1) применён один из вариантов: сборка из исходного кода с официальным обратным портом.
- Все службы PHP перезапущены.
- Если обновление/патч отложены — применены временные меры для обеих уязвимостей.
- OPcache очищен (если используется).
- Версия PHP проверена через
php -vи/илиphpinfo().
Москва, ул. Пришвина, д.8, корп.2