В софтуерния свят сигурността е постоянно състезание с времето, но понякога заплахите остават скрити в продължение на десетилетия. Наскоро бе открита критична уязвимост от типа „препълване на буфера в хийпа“ (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 байта. Резултатът е фатален: в буфера се записват много повече данни, отколкото са били заделени първоначално, което води до класическо препълване на буфера в хийпа.

Откриване и експлоатация
Изследователи от фирмата за сигурност 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), докато процесът по обновяване приключи.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!