CVE-2026-42945 NGINX Rift: 18-летний heap overflow, RCE без аутентификации
🔥 NGINX Rift: 18-летний heap overflow в rewrite-модуле
CVE-2026-42945 существует с nginx 0.6.27 — это 2008 год, когда половины нынешних DevOps-команд ещё не было в профессии. Heap-based buffer overflow в ngx_http_rewrite_module позволяет добиться RCE без аутентификации через специально сформированный HTTP-запрос. Причина банальна: rewrite-директива с unnamed regex capture
() плюс replacement с вопросительным знаком, за которым идёт ещё один rewrite/if/set в той же области видимости. Такой шаблон встречается в каждой второй production-конфигурации.
Затронуты все версии NGINX Open Source до 1.30.1, NGINX Plus R32-R36, Ingress Controller до 5.4.1. По данным depthfirst, proof of concept уже опубликован, но эксплуатации в реальных условиях пока не зафиксировано. Временное решение без обновления: заменить () на named captures (?<name>) во всех rewrite-правилах.
→ CVE-2026-42945, heap overflow → RCE, CVSS 9.2
→ Затронуто: nginx 0.6.27–1.30.0, Plus R32–R36, Ingress 3.5.0–5.4.1
→ Исправление: nginx 1.31.0/1.30.1, Plus R36 P4/R32 P6
18 лет в коде — это не просто баг, это археология. Сколько security-аудитов nginx прошёл за это время, и никто не нашёл overflow в одном из базовых модулей? Либо статический анализ не дотягивается до сложных path conditions, либо аудиторы сосредотачивались на новом коде. В любом случае — повод пересмотреть методологию code review для устаревших компонентов.
#CVE202642945 #nginx #HeapOverflow #RCE