18 İllik NGINX RCE Boşluğu: Necə Yaranıb?
NGINX web serverinin mənbə kodunda 2008-ci ildən bəri mövcud olan kritik heap buffer overflow boşluğu (CVE-2026-42945) ictimaiyyətə açıqlanıb. CVSS skoru 9.2 olan bu boşluq, PoC Exploit-i ilə birlikdə, dünyanın ən geniş yayılmış web serverlərindən birinə qarşı təsdiqlənməmiş RCE hücumlarına imkan verir.
CVE-2026-42945, NGINX-in ngx_http_rewrite_module hissəsində yerləşir. Bu modul, demək olar ki, hər müasir NGINX quraşdırmasında URL-lərin yenidən yazılmasına və dəyişənlərin təyin edilməsinə xidmət edir. Boşluq ilk dəfə 2008-ci ildə buraxılan 0.6.27 versiyasında ortaya çıxıb və 1.30.0 versiyasına qədər 18 il ərzində aşkarlanmadan qalıb.
Zəiflik, bir konfiqurasiyada rewrite və set direktivləri birlikdə istifadə edildikdə işə düşür – bu, API Gateway quraşdırmalarında geniş yayılmış bir şablondur. NGINX-in daxili skript mühərriki bu direktivləri iki keçidli sistemlə emal edir: ilk keçid yaddaş uzunluğunu hesablayır, ikinci isə ayrılmış buferə məlumat yazır.
Kritik qüsur iki keçid arasındakı vəziyyət uyğunsuzluğundan yaranır. Bir rewrite direktivi sual işarəsi (?) ehtiva etdikdə, əsas skript mühərrikində is_args = 1 bayrağını daimi olaraq təyin edir. Lakin, ilk (uzunluq hesablanması) keçid zamanı, is_args sıfır olan bir alt mühərrik istifadə olunur. Bu halda, uzunluq URI escaping nəzərə alınmadan hesablanır.
İkinci (kopyalama) keçid zamanı isə əsas mühərrik is_args = 1 ilə işləyir və ngx_escape_uri funksiyasının hər escapable baytı 1-dən 3 bayta qədər genişləndirməsinə səbəb olur. Nəticədə, buferə ayrıldığından daha çox məlumat yazılır və klassik heap buffer overflow baş verir.
Aşkar Edilməsi və Exploit
Təhlükəsizlik tədqiqat firması “depthfirst” boşluğu 2026-cı ilin aprelində kod auditi zamanı müstəqil şəkildə aşkar edib. Həmin audit zamanı daha üç əlavə yaddaş pozuntusu səhvi də tapılıb. Tədqiqatçılar, ASLR deaktiv edilmiş sistemlər üçün işlək bir RCE Exploit inkişaf etdiriblər.
Hücum zənciri, heap manipulyasiyası, POST body-ləri vasitəsilə saxta cleanup strukturunun spreylənməsi və NGINX-in deterministik çoxprosesli arxitekturasını birləşdirərək etibarlı və təkrarlana bilən kod icrasını təmin edir. İşlək PoC artıq GitHub-da ictimaiyyətə təqdim olunub.
Təsir Edilən Məhsullar və Həll Yolları
Bu zəiflik geniş çeşidli F5/NGINX məhsullarına təsir edir, bunlara NGINX Open Source (0.6.27–1.30.0), NGINX Plus R32–R36, NGINX Instance Manager, NGINX App Protect WAF, NGINX Gateway Fabric və NGINX Ingress Controller daxildir.
F5 13 may 2026-cı il tarixində rəsmi təhlükəsizlik bildirişini yayımlayıb. Administratorlara dərhal NGINX 1.30.1 və ya 1.31.0 versiyalarına yüksəltmək tövsiyə olunur. Təcili yamama edə bilməyən təşkilatlar, rewrite + set direktivlərinin birlikdə istifadəsini yoxlamalı və yamama prosesi tamamlanana qədər NGINX quraşdırmalarını əlavə bir WAF təbəqəsinin arxasında məhdudlaşdırmağı nəzərdən keçirməlidirlər.