Megjelent az nginx 1.31.0 verziójának fő ága, amely lehetőségeinek további fejlesztése mellett párhuzamosan kiadja az nginx 1.30.1 stabil ágat, amelybe csak a súlyos hibák és sebezhetőségek kijavításához szükséges változtatások kerülnek. Az frissítések során 6 sebezhetőséget javítottak, a legveszélyesebb közülük lehetővé teszi a távoli kódvégrehajtást egy különleges HTTP-kérelemmel. Az angie és freenginx esetében a hír írásakor a javítások még nem kerültek közzétételre.
A (CVE-2026-42945) sebezhetőség, amely kritikus fokozatú veszélyességű, a ngx_http_rewrite_module modulban fellépő puffer túlcsordulás miatt keletkezett, amely kihasználható a nginx munkafolyamatához tartozó kód végrehajtásához, ha a HTTP-kérelemben egy különleges URI érkezik. A probléma azokban a konfigurációkban jelentkezik, ahol a 'rewrite' direktívában nem nevezett változókkal (például $1 és $2) használt reguláris kifejezések vannak, ha a helyettesítő karakterlánc tartalmaz egy '?' karaktert. Például, sebezhető konstrukció: rewrite ^\/users\/([0-9]+)\/profile\/(.*)$ \/profile.php?id=$1&tab=$2 last;
A nevekkel ellátott helyettesítésekkel rendelkező kifejezések nem érintettek a sebezheten. Például a sebezhetőség nem vonatkozik a következő konstrukciókra: rewrite ^\/users\/(?<user_id>[0-9]+)\/profile\/(?<section>.*)$ \/profile.php?id=$user_id&tab=$section last;
A sebezhetőség a 2008 márciusában kiadott 0.6.27 verziótól kezdődően elérhető. A sebezhetőség megjelenésének oka az, hogy a puffer úgy lett lefoglalva, hogy abba nem escaped adatokat írnak, de valójában az escape-elés után lekopott adatokat másolták bele, amelyek mérete túllépte a megengedett határt, mivel minden '+' és '%' karakter 3 byte-os UTF-8 kódot kapott be, nem pedig 1 byte-ot. Ez a diszkrepancia akkor jelentkezett, amikor a 'rewrite' szabályban jelen volt a '?' karakter, amely beállította az 'e->is_args' jelzőt, amely az escape-elést aktiválta, de a puffer lefoglalása egy ellensúlyozott állapotban történt, amikor az escape-elés nem volt érvényben.
Egyéb sebezhetőségek:
- CVE-2026-42926 — a támadó adatinak behelyettesítése a proxied kérésbe a 'proxy_set_body' direktíva beállításainak használatakor és a backend HTTP/2-n (proxy_http_version=2) történő elérésénél.
- CVE-2026-40701 — memória elérhetőség utáni hívás (use-after-free) az ngx_http_ssl_module modulban, amely DNS-kiszolgáló válaszainak feldolgozása során lép fel, ha az "ssl_ocsp" direktívát használják a konfigurációkban.
- CVE-2026-42946 — a memória határain túli olvasás az ngx_http_uwsgi_module és ngx_http_scgi_module modulokban, amely speciálisan formázott válaszok feldolgozása során lép fel. A probléma memória tartalom szivárgásához vagy a munkafolyamat összeomlásához vezethet.
- CVE-2026-42934 — a memória határain túli olvasás a munkafolyamatban, amely a UTF-8 kódolásból való dekódolás során lép fel, ha a "charset_map" direktívát használják. A probléma memória tartalom szivárgásához vagy a munkafolyamat összeomlásához vezethet.
- CVE-2026-40460 — sérülékenység a HTTP/3 protokoll megvalósításában, amely álcázást tesz lehetővé IP address az engedélyezés vagy korlátozások megkerülésére.
Javítások, amelyek az nginx 1.31.0 kiadásában kerültek bevezetésre:
- Bevezetésre került az ngx_http_tunnel_module modul, amely lehetővé teszi a forward proxy működését, amely a HTTP/1.1 CONNECT módszerrel irányítja át a kéréseket egy másik szerverre. Lehetséges a proxyhoz való hozzáférés hitelesítésének beállítása az "auth_basic", "satisfy" és "auth_delay" direktívák segítségével.
- Az "upstream" blokkba bekerült a "least_time" direktíva, amely a terheléselosztási módszert tartalmazza, amely a kérést szerverhez a legkisebb átlagos válaszidővel és a legkevesebb aktív kapcsolattal rendelkező szerverre irányítja.
- A "stream_proxy" modulhoz hozzáadták a "proxy_ssl_alpn" direktívát, amely lehetővé teszi a kapcsolódó szerverhez történő kapcsolódás során az ALPN kiterjesztésben megengedett protokollok listájának megadását. Például: "proxy_ssl_alpn h2 http/1.1".
- Megoldásra került a HTTP/2 és HTTP/3 protokollokkal érkező kérések elutasítása, amelyek "Connection", "Proxy-Connection", "Keep-Alive", "Transfer-Encoding", "Upgrade" fejlécet tartalmaznak.
- Az ngx_http_dav_module modulban a COPY és MOVE kérések elutasítására került sor, ha az ugyanazt a forrást és célforrást, vagy beágyazott gyűjteményeket témáz.
- Hiba loggolási szintje SSL "invalid alert", "record layer failure" és "SSL alert number N" csökkentése "crit"-ről "info"-ra.
- A configure scripthez hozzáadták a "—without-http_upstream_sticky_module" paramétert, amely letiltja az http_upstream_sticky_module fordítását (a "—without-http_upstream_sticky" paraméter elavult).
Kiegészítés: Exploit áll rendelkezésre az RCE-sebezhetőségre az ngx_http_rewrite_module-ban.
Forrás: opennet.ru
