14 октября 2026 nginx выпустил 1.31.7 на ветке mainline и 1.30.6 на стабильной ветке - security-релиз, закрывающий сразу пять CVE средней серьёзности.[1][2] Если последний раз вы пробегали changelog глазами, когда обновляли ядро reverse proxy, это стоит прочитать целиком: вместе фиксы закрывают переполнения буфера в alias + rewrite, вычисление строковых выражений в расчёте корня и логах, инъекцию в тело запроса в HTTP/3, подделку TLS-сессии через ротацию тикет-ключей и use-after-free в AIO/SSI. Уязвимые пути лежат в совершенно разных директивах, поэтому «затронут ли меня» - это не один ответ «да/нет», а пять разных проверок под каждый путь, который реально выполняет ваш nginx.
Это продолжение нашего гайда по HTTP/3-фиксу в 1.31.6 - тот релиз уже отправлял вас сюда специальным апдейтом и остаётся источником правды по CVE-2026-90439 (heap overflow в HTTP/3 на OpenSSL ≤ 3.5.0). Ниже - новая партия: что именно закрыто, как проверить, попадает ли ваш хост под каждую из пяти, и апгрейд, который закрывает всё разом.
Что именно закрывают 1.31.7 / 1.30.6
Все пять имеют серьёзность medium на странице адвайзори nginx.[2] Ни одна не затрагивает control plane - это data-plane проблемы worker-процессов, - но четыре из них удалённо достижимы на обычном конфиге, а две заслуживают внимания в первую очередь, потому что лежат в путях, которые большинство reverse proxy запускает по умолчанию. Вот каждая, точно сформулированная.
CVE-2026-15176 - переполнение буфера в alias + rewrite
В worker-процессе может возникнуть переполнение буфера, когда в location есть alias и URI запроса меняется директивой rewrite перед сопоставлением с путём файла - например, когда $request_filename используется в формате access log или в set/return после rewrite.[3] В записи CVE прямо сказано, что часть условий «вне контроля атакующего», а практический эффект - рестарт worker-процесса (DoS); выполнение кода возможно только на системах с отключённым или обходимым ASLR.[3]
- Уязвимы: nginx
0.1.29–1.31.6.[2] - Зона риска сужается до: конфигов, где
aliasсочетается сrewrite(или сset/return, ссылающимися на$request_filename). Обычный reverse proxy наproxy_passбезaliasэтот путь не запускает.
CVE-2026-93479 - переполнение буфера при вычислении строковых выражений
Переполнение буфера может возникнуть, пока nginx вычисляет строковые выражения с переменными - это затрагивает расчёт document root и логирование запросов в модулях http и stream.[1][4] Это самый «молодой» класс в партии: он существует только в окне mainline 1.31.2–1.31.6 и его стабильном зеркале, так что всё старше или новее вне зоны риска.
- Уязвимы: mainline
1.31.2–1.31.6; stable1.30.0–1.30.5.[2] - Зона риска сужается до: конфигов, где
rootвычисляется из переменной или лог-строки содержат переменные. Плоские путиroot /var/www/html;это не затрагивает.
CVE-2026-95101 - HTTP/3: неизвестный фрейм трактуется как тело запроса
При использовании HTTP/3 с proxy_request_buffering on; часть неизвестного фрейма может быть воспринята как тело запроса - что позволяет удалённому атакующему обойти client_max_body_size или внедрить данные в проксируемый запрос.[1][5] У этой CVE опубликован CVSS: 5.3 MEDIUM (CVSS 3.1, AV:N/AC:L/PR:N/UI:N/...) и 6.9 MEDIUM (CVSS 4.0) согласно записи cve.org.[5]
- Уязвимы: nginx
1.25.0–1.31.6(любая сборка с включённым HTTP/3).[2] - Зона риска сужается до: сборок с
--with-http_v3_module, которые реально раздаютlisten ... quic. Если HTTP/3 у вас нет, именно эта CVE до вас не дотянется.
CVE-2026-97629 - подделка TLS-сессии через ротацию тикет-ключей
Когда настроена ротация ключей TLS session ticket (автоматический путь - ssl_session_cache shared:... без явного ssl_session_ticket_key), один из ключей ротации остаётся неинициализированным, что позволяет атакующему подделать клиентскую SSL-сессию и потенциально обойти проверку клиентских сертификатов.[6]
- Уязвимы: nginx
1.23.2–1.31.6.[2] - Зона риска сужается до: TLS-серверов, полагающихся на автоматическую ротацию тикет-ключей - то есть есть директива
ssl_session_cache shared:и нетssl_session_ticket_key. Если вы задали собственныйssl_session_ticket_key, уязвимый путь автоматической ротации не тот, что работает.
CVE-2026-97205 - use-after-free в AIO + SSI
Когда включён асинхронный ввод-вывод (AIO) и SSI-страница содержит include virtual, обработка может наткнуться на use-after-free в worker-процессе - повреждение памяти или крах.[1][7]
- Уязвимы: nginx
0.8.11–1.31.6.[2] - Зона риска сужается до: серверов с
aio on;(илиaio threads;) и раздачей SSI-страниц сinclude virtual. По отдельности оба редки, а вместе - ещё реже, но это самый широкий затронутый диапазон в партии.
Затронут ли мой хост? Отвечайте по конфигу, а не по серверу
Раз пять CVE живут в разных директивах, правильная проверка - один проход grep по каталогу конфигов, а потом разбор, какие совпадения у вас есть вообще. Запустите на каждой машине с nginx (включая конфиги stream-модуля - они важны для CVE-2026-93479):
nginx -v
# nginx version: nginx/1.31.6 → в зоне риска по всем пяти
# nginx version: nginx/1.30.5 → в зоне риска; обновитесь до 1.30.6 (stable)
# nginx version: nginx/1.31.7 → пропатчено
echo "--- alias + rewrite ($request_filename) [CVE-2026-15176]"
grep -rnE 'alias|rewrite|request_filename' /etc/nginx/
echo "--- root из переменной / строки в access log [CVE-2026-93479]"
grep -rnE 'root\s+\$|log_format.*\$|access_log.*\$' /etc/nginx/
echo "--- HTTP/3-листенеры [CVE-2026-95101]"
grep -rnE 'listen .*(quic|http3)|http3 on' /etc/nginx/
echo "--- TLS session cache БЕЗ явного ticket key [CVE-2026-97629]"
grep -rnE 'ssl_session_cache|ssl_session_ticket_key' /etc/nginx/
echo "--- AIO + SSI include virtual [CVE-2026-97205]"
grep -rnE 'aio\s+(on|threads)|include virtual' /etc/nginx/
Решает версия из nginx -v, есть ли у совпадения смысл. Mainline 1.31.2–1.31.6 с root из переменной - прямо в зоне риска CVE-2026-93479; тот же конфиг на 1.31.1 - нет (эта версия предшествует багованному окну). И помните гейт HTTP/3 из гайда по 1.31.6: для CVE-2026-95101 модуль должен быть скомпилирован (nginx -V 2>&1 | grep -- '-with-http_v3_module'), а listen ... quic - реально раздавать трафик.
Простейший корректный вывод: если у вас версия ≤ 1.31.6 (mainline) или ≤ 1.30.5 (stable), вы в зоне риска минимум по одной из пяти - вопрос только по какой, и ответ меняет лишь срочность, а не действие. Обновляйтесь.
Апгрейд: один релиз закрывает все пять на обеих ветках
Обе исправленные версии вышли в один день, 14 октября 2026, в исходниках и бинарных пакетах.[1][8] Рутина - та же, что у любого security-бампа nginx:
# Debian / Ubuntu - актуальный исправленный mainline (окт. 2026)
sudo apt update
sudo apt install nginx=1.31.7*
# или просто возьмите любое обновление из репозитория: sudo apt upgrade
Если ваш дистрибутив закрепляет более старый stable (часто на Ubuntu), переезжайте на официальные пакеты nginx.org ветки mainline 1.31.x или stable 1.30.x, а не сидите на уязвимой сборке.
Проверьте конфиг перед тем, как трогать работающий процесс:
sudo nginx -t
Для security-патча - restart: reload во время смены продолжает обслуживать новые соединения старым бинарником. Затем подтвердите версию, которая реально обслуживает:
sudo systemctl restart nginx
nginx -v
# nginx version: nginx/1.31.7
Несколько слов о фичах, которые едут вместе с фиксом
Оба релиза добавляют больше, чем фиксы, и стоит знать, что вы получаете за тот же апгрейд. Geoip-модули (ngx_http_geoip_module, ngx_stream_geoip_module) теперь читают базы в формате MaxMind DB (MMDB); сертификаты backend теперь можно проверять по IP-адресу; QUIC поддерживает reconfiguration и binary upgrade при использовании директивы quic_bpf; а HTTP/2-модуль mainline переходит на приоритизацию RFC 9218.[1] Ничто из этого не меняет security-историю - это причины, по которым вырос номер релиза, а не по которым нужно обновляться. Пять CVE выше - вот причина.
К чему это относится
Этот релиз - прямой наследник фикса HTTP/3 в 1.31.6, который уже содержит коллаут, отправляющий вас сюда. Инъекция HTTP/3 в CVE-2026-95101 и безопасная обработка TLS-тикетов в CVE-2026-97629 живут в той же зоне, что и правильно настроенный reverse proxy: если ваш server-блок из того гайда (обычный listen 443 ssl; + http2 on;, без QUIC, явные keepalive и заголовки), вы уже вне нескольких зон поражения, а апгрейд закрывает остальное.
Короткая версия
nginx 1.31.7 (mainline) и 1.30.6 (stable), выпущенные 14 октября 2026, закрывают пять CVE средней серьёзности: CVE-2026-15176 (переполнение буфера в alias + rewrite → $request_filename), CVE-2026-93479 (переполнение при вычислении строковых выражений с переменными в root/логах, http+stream), CVE-2026-95101 (неизвестный фрейм как тело запроса в HTTP/3 → обход client_max_body_size / инъекция в проксируемый запрос), CVE-2026-97629 (неинициализированный ключ ротации TLS-тикетов → подделка сессии) и CVE-2026-97205 (use-after-free в AIO + SSI include virtual).[1][2] Если у вас ≤ 1.31.6 / ≤ 1.30.5, вы в зоне риска минимум по одной: grep по конфигу на alias/rewrite, root из переменной, quic-листенеры, ssl_session_cache без явного ssl_session_ticket_key и aio+SSI, затем апгрейд, nginx -t, restart и подтверждение через nginx -v. Один restart закрывает все пять.
Источники
- nginx - Changes with nginx 1.31.7 / 1.30.6 (14.10.2026: пять security-заметок - CVE-2026-15176, CVE-2026-93479, CVE-2026-95101, CVE-2026-97629, CVE-2026-97205; фичи: geoip MMDB, проверка сертификатов backend по IP, QUIC reconfig с quic_bpf, приоритизация HTTP/2 RFC 9218). https://nginx.org/en/CHANGES ; https://nginx.org/en/CHANGES-1.30 - проверено 2026-10-17
- nginx - Security advisories (все пять серьёзность medium; затронутые диапазоны: 15176 0.1.29–1.31.6, 93479 1.31.2–1.31.6 и 1.30.0–1.30.5, 95101 1.25.0–1.31.6, 97629 1.23.2–1.31.6, 97205 0.8.11–1.31.6; не уязвимы 1.31.7+/1.30.6+). https://nginx.org/en/security_advisories.html - проверено 2026-10-17
- Запись CVE-2026-15176 (CNA F5; alias+rewrite с
$request_filename; часть условий вне контроля атакующего; heap buffer overflow → рестарт воркера; выполнение кода только при отключённом/обходимом ASLR; только data plane; CWE-122). https://www.cve.org/CVERecord?id=CVE-2026-15176 - проверено 2026-10-17 - Запись CVE-2026-93479 (CNA F5; map-директива с regex + ссылки на переменные в root/access log; heap buffer overflow → DoS, возможное выполнение кода при обходе ASLR; только data plane; CWE-122). https://www.cve.org/CVERecord?id=CVE-2026-93479 - проверено 2026-10-17
- Запись CVE-2026-95101 (CNA F5; ngx_http_v3_module; HTTP/3 с
proxy_request_buffering on→ инъекция данных в проксируемый запрос; CVSS 5.3 MEDIUM 3.1 / 6.9 MEDIUM 4.0; CWE-172). https://www.cve.org/CVERecord?id=CVE-2026-95101 - проверено 2026-10-17 - Запись CVE-2026-97629 (CNA F5; ngx_http_ssl_module; автоматическая ротация ключей SSL session ticket с неинициализированным ключом → подделка сессии, возможный обход проверки клиентских сертификатов). https://www.cve.org/CVERecord?id=CVE-2026-97629 - проверено 2026-10-17
- Запись CVE-2026-97205 (CNA F5; ngx_http_core_module; AIO + SSI
include virtual→ use-after-free, повреждение памяти или крах воркера, возможное выполнение кода при обходе ASLR; CWE-416). https://www.cve.org/CVERecord?id=CVE-2026-97205 - проверено 2026-10-17 - nginx - download (mainline 1.31.7, stable 1.30.6, исходники и бинарные пакеты). https://nginx.org/en/download.html - проверено 2026-10-17