Nginx 1.31.0 update with RCE vulnerability fix exploited through HTTP request

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

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster