В софтуерния свят сигурността е постоянно състезание с времето, но понякога заплахите остават скрити в продължение на десетилетия. Наскоро бе открита критична уязвимост от типа „препълване на буфера в хийпа“ (heap buffer overflow) в изходния код на NGINX, която присъства в системата още от далечната 2008 година.

Тази уязвимост вече е публично оповестена заедно с работещо доказателство за концепцията (Proof-of-Concept – PoC), което позволява на неоторизирани нападатели да осъществят отдалечено изпълнение на код (Remote Code Execution – RCE) срещу един от най-широко използваните уеб сървъри в света.

Детайли за заплахата: CVE-2026-42945

Уязвимостта е получила оценка от 9.2 по скалата на CVSS, което я класифицира като критична. Тя се намира в модула ngx_http_rewrite_module на NGINX. Този специфичен двигател захранва функциите за пренаписване на URL адреси (URL rewriting) и присвояване на променливи, които се използват в практически всяка модерна инсталация на NGINX.

Грешката е въведена за първи път във версия 0.6.27 през 2008 г. и остава неоткрита в продължение на 18 години във всички версии до 1.30.0.

Как работи механизмът на атаката?

Проблемът се задейства, когато конфигурацията на сървъра използва директивите rewrite и set заедно – модел, който е изключително често срещан при настройки на API шлюзове (API gateways).

Вътрешният скриптов двигател на NGINX обработва тези директиви чрез система от два паса (преминавания):

Първи пас: Изчислява се необходимата дължина на паметта. Втори пас: Данните се записват в разпределения буфер.

Критичният пропуск се крие в несъответствието на състоянието между тези два паса. Когато директивата rewrite съдържа въпросителен знак (?), тя за постоянно задава флаг is_args = 1 в главния скриптов двигател. Въпреки това, по време на първия пас (изчисляването на дължината), се използва под-двигател, чиито стойности са нулирани. Това означава, че дължината се изчислява, без да се вземе предвид екранирането на URI символите (URI escaping).

При втория пас обаче главният двигател работи с активен флаг is_args = 1. Това кара функцията ngx_escape_uri да разшири всеки байт, който изисква екраниране, от 1 на 3 байта. Резултатът е фатален: в буфера се записват много повече данни, отколкото са били заделени първоначално, което води до класическо препълване на буфера в хийпа.

Критична 18-годишна уязвимост в NGINX позволява отдалечено изпълнение на код (RCE) Откриване и експлоатация

Изследователи от фирмата за сигурност depthfirst автономно откриват уязвимостта по време на одит на кода през април 2026 г. Те успяват да разработят работещ RCE експлойт за системи, в които защитата ASLR (Address Space Layout Randomization) е деактивирана.

Атаката е комплексна и използва верига от манипулации на хийпа, разпръскване на фалшиви структури за почистване чрез POST заявки и детерминистичната мултипроцесна архитектура на NGINX, за да постигне надеждно и повторяемо изпълнение на зловреден код. Публично PoC вече е достъпно в платформата GitHub.

Още три потвърдени уязвимости

Освен критичния RCE пропуск, бяха потвърдени още три CVE идентификатора, открити при същия одит:

CVE-2026-42946 (Висока степен – 8.3): Проблем в модулите ngx_http_scgi/uwsgi, водещ до прекомерно заделяне на памет (около 1 TB) и срив на системата. CVE-2026-40701 (Средна степен – 6.3): Грешка от типа „използване след освобождаване“ (Use-after-free) чрез OCSP в SSL модула. CVE-2026-42934 (Средна степен – 6.3): Четене извън границите (Out-of-bounds read) в модула ngx_http_charset. Засегнати продукти и версии

Уязвимостта засяга широк спектър от продукти на F5 и NGINX:

NGINX Open Source: версии 0.6.27 – 1.30.0. NGINX Plus: версии R32 – R36. Други продукти: NGINX Instance Manager, NGINX App Protect WAF, NGINX Gateway Fabric и NGINX Ingress Controller.

За защита на системите са пуснати следните пачове:

За NGINX Plus е необходим ъпгрейд до версия R36 P1+ или R37+. За NGINX Instance Manager – версия 2.21.2+. За NGINX App Protect WAF – версии 4.16.1+ или 5.8.1+. За NGINX Gateway Fabric – версии 1.6.3+ или 2.5.2+. За NGINX Ingress Controller – версии 3.7.3+, 4.0.2+ или 5.4.2+. Препоръки за администраторите

F5 публикува официалния си съвет за сигурност на 13 май 2026 г. Основната препоръка е незабавно актуализиране до NGINX 1.30.1 или 1.31.0.

Организациите, които не могат да приложат корекциите веднага, трябва спешно да извършат одит на своите конфигурационни файлове за комбинирана употреба на директивите rewrite и set. Също така се препоръчва ограничаване на достъпа до изложените NGINX инсталации чрез допълнителен слой за защитна стена на уеб приложения (WAF), докато процесът по обновяване приключи.