DSA-6496-1: три CVE в nginx на Debian 13

12 сентября 2026 года, в 11:06 UTC, Aron Xu отправил в debian-security-announce DSA-6496-1: security-апдейт пакета nginx. Это не новая ветка и не mainline с nginx.org. Debian закрыл три CVE в стабильной trixie сборкой 1.26.3-3+deb13u8.

По тексту advisory: отказ в обслуживании, раскрытие памяти или потенциально выполнение кода. Для VPS с WordPress за nginx и php-fpm это тот самый бинарник, который держит TLS, раздаёт статику и проксирует PHP. Пакет вышел в security-кармане Debian. На проде он появится только после apt.

DSA-6496-1 закрывает три CVE в nginx

В письме три идентификатора. Формулировки Debian короче, чем карточки F5 на трекере, и для пакета дистрибутива я держусь advisory.

  • CVE-2026-42533. Переполнение кучи в скриптовом движке nginx. Срабатывает, когда директива map делает regex-сопоставление, а строковое выражение ссылается на захваты, которые этот map меняет. Второй путь: некэшируемые переменные меняются между проходом длины скрипта и проходом копирования.
  • CVE-2026-56434. Повторная финализация HTTP-подзапроса даёт use-after-free. Debian пишет, что это видно на SSI вместе с proxy_pass и выключенным proxy_buffering, если ответ апстрима дважды ставит один и тот же subrequest.
  • CVE-2026-60005. ngx_http_regex_exec() мог заменить массив захватов, не обнулив r->ncaptures, если новое регулярное выражение не совпало. Следующий безымянный захват читает неинициализированную память. Итог: утечка.

На странице DSA в Debian Security Tracker те же три CVE. Оценок CVSS, PoC и факта «уже бьют в дикой природе» в advisory нет. Я бы не делал из этого массовую эксплуатацию. Для прод-сайта достаточно закрыть пакет и проверить, что worker поднял новую сборку.

Debian Security Tracker: DSA-6496-1, nginx на trixie, три CVE
Карточка DSA-6496-1: CVE-2026-42533, CVE-2026-56434, CVE-2026-60005. Trixie 1.26.3-3+deb13u7 vulnerable, 1.26.3-3+deb13u8 fixed. Снимок 13 сентября 2026. Источник: security-tracker.debian.org/tracker/DSA-6496-1.

Trixie 1.26.3-3+deb13u8, bookworm без этого DSA

Фикс Debian назвал явно: стабильный релиз trixie, версия 1.26.3-3+deb13u8. Трекер уточняет картину по веткам.

  • Debian 13 (trixie): уязвима 1.26.3-3+deb13u7, закрыта 1.26.3-3+deb13u8 в trixie-security.
  • Debian 12 (bookworm): в таблице трекера стоит 1.22.1-9+deb12u9 со статусом vulnerable. В тексте DSA-6496-1 bookworm не упомянут.
  • forky и sid: 1.30.4-5 уже marked fixed.

Это пакет Debian, не nginx.org. Номер 1.26.3 в trixie не значит, что дистрибутив внезапно перешёл на другую линейку апстрима. База та же, в суффиксе +deb13u8 лежат патчи. Mainline 1.31.x и stable 1.30.x с официального сайта – другая история: их не подтянет apt, если вы сидите на репозитории Debian.

Ubuntu этот DSA не закрывает. Свой nginx там собирает Canonical, и ждать нужно USN, а не подмешивать debian-security в sources.list «на всякий случай». Смешивать MySQL и MariaDB в одной команде тоже не надо: к этой новости база не относится.

map с regex, SSI и безымянные захваты

Типичная схема: Debian, nginx, php-fpm, MariaDB, WordPress. Сайт не обязан включать SSI и slice, чтобы пакет был тем же. Бинарник один. Конфиг nginx трогать не нужно. Рестарт MariaDB «на всякий случай» тоже не нужен.

map с регулярками на VPS встречается чаще, чем SSI. Редиректы, кэш-ключ, разбор аргумента, отдельный бэкенд по Host – всё это часто живёт в map. Если в блоке есть regex и переменные вида $1 из этого map, CVE-2026-42533 уже не абстракция из changelog. На карточке CVE в том же трекере Debian отдельно пишет: неаутентифицированный запрос, heap buffer overflow в worker, рестарт процесса, при отключённом ASLR или обходе ASLR возможна и попытка исполнения кода. Control plane не задет, это data plane.

SSI плюс proxy_pass и proxy_buffering off – более узкий случай. На чистом WordPress за fastcgi_pass такого обычно нет. Но если nginx режет HTML через server-side includes и ходит в апстрим без буфера, Debian прямо указывает use-after-free. Для срабатывания нужен ещё и контроль ответа апстрима: в формулировке NVD/F5 на трекере это MITM к бэкенду, не «любой посетитель сайта».

Третья дыра в advisory Debian про regex-захваты, не про слоган slice. На карточке CVE-2026-60005 трекер дополнительно цитирует ngx_http_slice_module и unnamed regex captures: модуль не включён по умолчанию в апстриме, его собирают с –with-http_slice_module. Выдумывать, с каким набором модулей собран именно пакет Debian, не буду. Для практики достаточно: после апдейта смотреть версию пакета, а не гадать, был ли у вас slice в ./configure.

Проверка на Debian 13 без театра. Сначала версия и кандидат из security, потом тест конфига и reload, не restart воркеров «на всякий случай». Копию сайта nginx не требует, но копия /etc/nginx перед правками по-прежнему здравый смысл, даже если в этом апдейте конфиг не меняется.

apt-cache policy nginx
nginx -v
sudo apt update
sudo apt install --only-upgrade nginx
sudo nginx -t
sudo systemctl reload nginx

Ожидаемый кандидат на trixie: 1.26.3-3+deb13u8. Если policy показывает 1.26.3-3+deb13u7 и зеркало без trixie-security, пакет ещё не у вас. Если nginx -t ругается, reload не делайте: worker со старым бинарником лучше живого 502 из-за опечатки, которой в этом апдейте нет, но которая легко появляется, когда параллельно правили конфиг.

На bookworm я бы не ставил trixie-пакет вручную и не добавлял посторонние репозитории nginx.org ради этих трёх CVE, пока Debian не выпустит отдельный DSA или точечный фикс для 12-й. Трекер на 12 сентября 2026 для bookworm так и пишет: vulnerable. Это не «обновите все серверы сегодня», это другая ветка.

После reload смотрите, что php-fpm и сайт отвечают как раньше. Сам FPM этим DSA не трогают. Спотыкаются обычно на трёх местах: security-карман не в sources.list, путаница mainline-сборки с пакетом Debian и restart вместо reload, который рвёт keep-alive на ровном месте.

Источники и ссылки


Комментарии загружаются…