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
