
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Ujawnienie publicznego kodu proof-of-concept dla podatności CVE-2026-42945 znacząco podniosło poziom ryzyka dla organizacji korzystających z NGINX. Luka dotyczy przepełnienia bufora na stercie w module ngx_http_rewrite_module i może prowadzić do awarii procesu roboczego, a w określonych warunkach także do zdalnego wykonania kodu.
Problem ma szczególne znaczenie operacyjne, ponieważ NGINX pozostaje jednym z najczęściej wdrażanych serwerów HTTP, reverse proxy i komponentów pośredniczących w środowiskach internetowych, chmurowych oraz kontenerowych. W praktyce oznacza to, że nawet relatywnie wąska podatność konfiguracyjno-logiczna może mieć bardzo szeroki zasięg.
W skrócie
- CVE-2026-42945 otrzymała wysoką ocenę krytyczności i dotyczy modułu odpowiedzialnego za przepisywanie żądań HTTP.
- Źródło błędu miało pozostawać w kodzie przez wiele lat, mimo dojrzałości projektu.
- Publikacja działającego PoC obniża próg wejścia dla atakujących i zwiększa prawdopodobieństwo masowych prób wykorzystania.
- Najbardziej realnym krótkoterminowym skutkiem są ataki typu denial-of-service, ale nie można wykluczyć bardziej zaawansowanych scenariuszy.
- Kluczowe znaczenie ma szybka aktualizacja oraz przegląd konfiguracji wykorzystujących dyrektywy
rewriteiset.
Kontekst / historia
Podatność została nagłośniona po opublikowaniu poprawek bezpieczeństwa przez producenta. Według dostępnych analiz błąd był obecny w kodzie od około 2008 roku, co czyni go przykładem długo ukrytej usterki pamięciowej w jednym z najważniejszych komponentów infrastruktury webowej.
Po wydaniu poprawek bardzo szybko pojawiły się analizy techniczne oraz publiczny kod demonstracyjny. Taki moment zwykle stanowi przejście z fazy ryzyka teoretycznego do ryzyka praktycznego. Organizacje, które wcześniej mogły traktować zagrożenie jako trudne do wykorzystania, po publikacji PoC muszą zakładać wzrost aktywności skanerów, badaczy oraz potencjalnych grup przestępczych.
Analiza techniczna
Sednem CVE-2026-42945 jest przepełnienie bufora na stercie w ngx_http_rewrite_module. Mechanizm błędu wiąże się z działaniem wewnętrznego silnika przetwarzania skryptów w NGINX, który najpierw oblicza wymagany rozmiar bufora, a następnie wykonuje operację kopiowania danych.
W określonych warunkach stan silnika może ulec zmianie pomiędzy tymi etapami, co skutkuje alokacją zbyt małego obszaru pamięci. Istotną rolę odgrywa odpowiednio skonstruowane przepisanie URI, zwłaszcza w scenariuszach wykorzystujących znak zapytania w replacement string. W efekcie dane mogą zostać zapisane poza granicą przydzielonego bufora.
Badacze wskazują, że rozmiar nadpisania może być kontrolowany przez napastnika poprzez odpowiedni dobór znaków wymagających escapingu. Najbardziej bezpośrednim skutkiem jest niestabilność procesu roboczego i podatność na wymuszenie błędu typu denial-of-service. Jednak w środowiskach z osłabionymi mechanizmami ochrony pamięci, takich jak wyłączony ASLR, możliwe stają się również bardziej zaawansowane ścieżki prowadzące do wykonania kodu.
Z perspektywy administratorów szczególnie ważne jest to, że problem dotyczy nie tylko samej obecności NGINX, ale także konkretnych konfiguracji wykorzystujących dyrektywy rewrite i set. Oznacza to konieczność analizy zarówno wersji oprogramowania, jak i sposobu jego użycia w środowisku produkcyjnym.
Konsekwencje / ryzyko
Najbardziej prawdopodobnym scenariuszem krótkoterminowym są zakłócenia dostępności usług HTTP. W praktyce może to oznaczać restarty workerów, wzrost liczby błędów 5xx, spadek jakości działania reverse proxy, a w niektórych przypadkach całkowitą niedostępność aplikacji publikowanych przez NGINX.
Ryzyko jest szczególnie wysokie w organizacjach, które korzystają z rozbudowanych reguł przetwarzania URI, utrzymują stare obrazy kontenerowe lub nie posiadają pełnej inwentaryzacji komponentów zależnych od NGINX. Problem może dotyczyć nie tylko serwerów frontowych, lecz także kontrolerów ingress, appliance’y sieciowych, wewnętrznych proxy i platform dostawców usług.
Choć scenariusz zdalnego wykonania kodu pozostaje bardziej złożony technicznie, jego potencjalne skutki są znacznie poważniejsze. Publiczna dostępność PoC oraz szczegółów eksploatacji zwiększa prawdopodobieństwo pojawienia się kolejnych wariantów exploitów lepiej dostosowanych do konkretnych środowisk i konfiguracji.
Rekomendacje
Priorytetem powinno być szybkie ustalenie, gdzie w organizacji działa podatny NGINX lub rozwiązania osadzone na tym silniku. Sama identyfikacja publicznie wystawionych serwerów nie wystarczy. Należy objąć analizą również środowiska deweloperskie, kontenery, narzędzia pośredniczące oraz komponenty dostarczane przez strony trzecie.
- Przeprowadzić pełną inwentaryzację instancji NGINX i produktów zależnych.
- Zaktualizować NGINX Open Source do wskazanych bezpiecznych wersji oraz wdrożyć poprawki dla wariantów komercyjnych.
- Przeanalizować konfiguracje pod kątem użycia dyrektyw
rewriteiset. - Wykonać testy regresyjne po wdrożeniu poprawek, szczególnie w aplikacjach intensywnie korzystających z przepisywania URI.
- Monitorować logi pod kątem nietypowych żądań, anomalii w ścieżkach URL oraz wzrostu błędów 500, 502 i 504.
- Zwiększyć obserwowalność restartów workerów, błędów pamięci i nietypowych skoków obciążenia.
- Tymczasowo ograniczyć ekspozycję najbardziej wrażliwych usług poprzez WAF, rate limiting oraz filtrowanie ruchu.
Z perspektywy zespołów bezpieczeństwa publikację PoC należy traktować jako sygnał do podniesienia poziomu detekcji i przeglądu wcześniejszej telemetrii. Nawet po wdrożeniu poprawek warto sprawdzić, czy w okresie poprzedzającym aktualizację nie występowały symptomy prób rozpoznania lub testowania luki.
Podsumowanie
CVE-2026-42945 to przykład podatności, która przez lata mogła pozostawać niezauważona w krytycznym elemencie infrastruktury internetowej. Upublicznienie kodu proof-of-concept istotnie zwiększa presję na szybkie działania, ponieważ skraca czas między publikacją poprawek a realnym wykorzystaniem podatności przez atakujących.
Dla organizacji oznacza to konieczność natychmiastowego patchowania, przeglądu konfiguracji przepisujących żądania HTTP oraz intensywniejszego monitorowania objawów niestabilności usług. W przypadku tak szeroko stosowanego komponentu zwłoka znacząco podnosi ryzyko operacyjne.
Źródła
- PoC Code Published for Critical NGINX Vulnerability — https://www.securityweek.com/poc-code-published-for-critical-nginx-vulnerability/
- F5 Releases Security Updates for NGINX Vulnerability CVE-2026-42945 — https://digital.nhs.uk/cyber-alerts/2026/cc-4783
- F5 nginx vulnerability: Find impacted systems — https://www.runzero.com/blog/nginx/
- Critical 18-Year-Old RCE Vulnerability in NGINX aka “NGINX Rift” (CVE-2026-42945) — https://beazley.security/alerts-advisories/critical-18-year-old-rce-vulnerability-in-nginx-aka-nginx-rift-cve-2026-42945
- CVE-2026-42945 — NGINX Heap Buffer Overflow via Malicious HTTP Requests in ngx_http_rewrite_module — https://www.ionix.io/threat-center/cve-2026-42945/