Aktualizácia nginx 1.31.0 odstraňuje zraniteľnosť RCE, ktorá sa dá využiť prostredníctvom HTTP požiadavky.

Bol unikla verzia hlavnej vetvy nginx 1.31.0, v rámci ktorej pokračuje rozvoj nových funkcií, a zároveň bola vydaná paralelne podporovaná stabilná vetva nginx 1.30.1, do ktorej sú zahrnuté len zmeny týkajúce sa odstránenia závažných chýb a zraniteľností. V aktualizáciách bolo odstránených 6 zraniteľností, najnebezpečnejšia z nich umožňuje vzdialené vykonávanie kódu prostredníctvom zaslania špeciálne upraveného HTTP požiadavku. Opravy pre angie a freenginx neboli k času písania správy zverejnené.

Zraniteľnosť (CVE-2026-42945), ktorej bola priradená kritická úroveň nebezpečenstva, je spôsobená preplnením vyrovnávacej pamäte v module ngx_http_rewrite_module, čo môže byť zneužité na vykonávanie kódu s oprávneniami pracovného procesu nginx prostredníctvom zaslania HTTP požiadavku so špeciálne upraveným URI. Problém sa prejavuje v konfiguráciách s direktívou „rewrite“, v ktorej sa v regulárnych výrazoch používajú zástupné znaky pomocou bezmenných premenných (napríklad $1 a $2), za podmienky, že v nahradzovanej reťazci je znak „?“. Príklad zraniteľnej konštrukcie: rewrite ^\/users\/([0-9]+)\/profile\/(.*)$ \/profile.php?id=$1&tab=$2 last;

Výrazy s pomenovanými zástupnými symbolmi nie sú zraniteľné. Napríklad zraniteľnosť sa netýka konštrukcií: rewrite ^\/users\/(?[0-9]+)\/profile\/(?

.*)$ \/profile.php?id=$user_id&tab=$section last;

Zraniteľnosť je prítomná od verzie 0.6.27, ktorá bola vydaná v marci 2008. Príčinou výskytu zraniteľnosti bolo to, že vyrovnávacia pamäť bola alokovaná na predpoklad, že do nej budú zapísané neašpované údaje, ale v skutočnosti sa kopírovali údaje po vykonaní escapingu špeciálnych znakov, ktorých veľkosť bola väčšia, keďže každý znak „+“, „%“ a „&“ bol kódovaný nie jedným, ale troma bajtmi. Taktiež došlo k tomu, že ak bola v pravidle rewrite prítomná „?“, bol nastavený príznak „e->is_args“, pri ktorom sa aktivovalo escapovanie, ale alokácia vyrovnávacej pamäte sa robila pri resetovanom príznaku, pri ktorom escapovanie nebolo aplikované.

Ďalšie zraniteľnosti:

  • CVE-2026-42926 — možnosť zástupného vkladania údajov útočníka do proxy požiadavky pri použití direktívy „proxy_set_body“ a pristupovaní k backendu cez HTTP/2 (proxy_http_version=2).
  • CVE-2026-40701 — pristup k pamäti po jej uvoľnení (use-after-free) v module ngx_http_ssl_module, ktorý sa vyskytuje pri spracovaní odpovedí od DNS servera v konfiguráciách s direktívou „ssl_ocsp“.
  • CVE-2026-42946 — čítanie z oblasti mimo vyrovnávacej pamäte v moduloch ngx_http_uwsgi_module a ngx_http_scgi_module, ku ktorému dochádza pri spracovaní špeciálne formátovanej odpovedi. Problém môže viesť k úniku obsahu pamäte pracovného procesu alebo jeho neočakávanému ukončeniu.
  • CVE-2026-42934 — čítanie z oblasti mimo vyrovnávacej pamäte v pracovnom procese, ku ktorému dochádza pri spracovaní odpovedí s dekódovaním z kódovania UTF-8 pri použití direktívy „charset_map“. Problém môže viesť k úniku obsahu pamäte pracovného procesu alebo jeho neočakávanému ukončeniu.
  • CVE-2026-40460 — zraniteľnosť v implementácii protokolu HTTP/3, ktorá umožňuje spoofing IP adresy na obídenie autorizácie alebo obmedzení.

Vylepšenia pridané vo verzii nginx 1.31.0:

  • Do zostavy bol pridaný modul ngx_http_tunnel_module, ktorý umožňuje fungovanie ako proxy („forward proxy“), presmerovávajúci požiadavky na iný server pri prístupe klienta pomocou metódy HTTP/1.1 CONNECT. Možná konfigurácia autentifikácie prístupu k proxy pomocou direktív „auth_basic“, „satisfy“ a „auth_delay“.
  • Do bloku „upstream“ bola pridaná direktíva „least_time“, ktorá zapína metódu vyvažovania záťaže odovzdávaním požiadaviek serveru s najnižším priemerným časom odozvy a najmenším počtom aktívnych pripojení.
  • Do modulu „stream_proxy“ bola pridaná direktíva „proxy_ssl_alpn“ na určenie zoznamu protokolov, ktoré sú povolené v rozšírení ALPN pri pripojení k proxy serveru. Napríklad: „proxy_ssl_alpn h2 http/1.1“.
  • Zabezpečené odmietanie požiadaviek prostredníctvom protokolov HTTP/2 a HTTP/3, ktoré obsahujú hlavičky „Connection“, „Proxy-Connection“, „Keep-Alive“, „Transfer-Encoding“, „Upgrade“.
  • V module ngx_http_dav_module je zabezpečené odmietanie požiadaviek COPY a MOVE s opakujúcim sa zdrojom a cieľovým zdrojom alebo vnútornými kolekciami.
  • Úroveň logovania chýb SSL „invalid alert“, „record layer failure“ a „SSL alert number N“ bola znížená z „crit“ na „info“.
  • Do skriptu configure bol pridaný parameter „—without-http_upstream_sticky_module“ na vypnutie zostavovania modulu http_upstream_sticky_module (parameter „—without-http_upstream_sticky“ bol označený ako zastaraný).

Doplnenie: K dispozícii je exploit pre zraniteľnosť RCE v ngx_http_rewrite_module.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster