Új sebezhetőség a nginx rewrite moduljában

Röviddel a felfedezés után 18 éves potenciális RCE-t még egy másikat is felfedeztek CVE-2026-9256, ezúttal még hosszabb ideig – 21 éven át, kezdve a 0.1.17-es verziótól, amelyet 2005 elején adtak ki.
A sebezhetőség kihasználásához szükséges, hogy a szerver konfigurációjában legyen egy rewrite direktíva, amelynek:

  • az első argumentumban átfedő kiemelt reguláris kifejezés paraméterek találhatók,
  • a másodikban pedig kettő vagy több közülük, de változók nincsenek használatban,
  • továbbá vagy a 'redirect' típus van megadva, vagy a második argumentumban található paraméterek a kérdőjel után helyezkednek el.

Példák:
rewrite ^\/((.*))$ http:\/\/127.0.0.1:8080\/$1$2 redirect;
rewrite ^\/((.*))$ http:\/\/127.0.0.1:8080\/?$1$2;

Mindkét esetben buffer túlcsordulás lép fel, amikor a '/++++++++++++++++++++++++++++++' kérés kerül feldolgozásra.

A korábbi sebezhetőséghez hasonlóan, ebben az esetben a kiszámított buffer hossza nem feltétlenül egyezik meg a ténylegesen beleírt adatok mennyiségével – a hossz kiszámításakor nem minden esetben vették figyelembe a lehetséges escaping-et.

A fent említett problémák a nginx munkafolyamatának összeomlásához vezethetnek, és ALRS hiányában RCE-hez is, mint enyhítő körülmény, megemlíthető, hogy a sebezhető konstrukciók előfordulása a konfigurációban kisebb valószínűséggel bír, mint az előző esetben.

A hiba a 1.30.2 és 1.31.1 verziókban van javítva (javító commit).

Forrás: linux.org.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