
Комментарии 2
классика жанра. у нас был похожий случай - выставили наружу порт для метрик без авторизации. какие именно строки в конфиге виноваты в этой уязвимости?
Две строки в одном location. Первая это rewrite, у которого в строке замены есть знак вопроса, и за ним что-то стоит. Вторая это любая следующая директива в том же блоке, которая читает безымянный захват от $1 до $9.
Минимальный падающий конфиг:
location / {
rewrite ^(.*) /new?c=1;
set $myvar $1;
}
Поодиночке ни одна из них не опасна: убрать вопрос, стоит; убрать set, тоже стоит. И важная тонкость, из-за которой будет много ложных тревог: хвостовой вопрос без аргументов, rewrite ^/old/(.*)$ /new/$1?;, это обычный сброс query string, и он не ломает. Проверял на стенде, таблица со всеми вариантами в разделе про границу.
Порт метрик наружу, да, отдельная классика. Там хотя бы видно глазами, а тут связка расползается по двум строкам, и каждая по отдельности выглядит совершенно нормально.
Уязвим не nginx, а две строки вашего конфига. Разбираю CVE-2026-42945 на живом стенде