Nova ranjivost u rewrite-modulu nginx

Ubrzo nakon otkrića 18-godišnjeg potencijalnog RCE-a otkriveno je još jedno, CVE-2026-9256, ovaj put postojalo je još duže — 21 godinu, počevši od verzije 0.1.17, objavljene početkom 2005. godine.
Za iskorištavanje ranjivosti u konfiguraciji poslužitelja potrebna je direktiva rewrite koja:

  • ima preklapajuće parametre regularnog izraza u prvom argumentu,
  • u drugom koristi dva ili više njih, ali ne koristi varijable,
  • pri čemu je ili naveden tip „redirect“, ili su parametri u drugom argumentu iza upitnika.

Primjeri:
rewrite ^\/((.*))$ http:\/\/127.0.0.1:8080\/$1$2 redirect;
rewrite ^\/((.*))$ http:\/\/127.0.0.1:8080\/?$1$2;

Oba će doživjeti preopterećenje (buffer overflow) prilikom obrade zahtjeva „\/++++++++++++++++++++++++++++++“.

Kao i kod prethodne ranjivosti, u ovom slučaju proračunska duljina bafera možda se ne poklapa s stvarnom količinom podataka koji su u njega zapisani — prilikom izračuna duljine nije svugdje uzeto u obzir moguće escape-anje.

Navedeno može dovesti do rušenja radnog procesa nginx-a, a u slučaju nedostatka ALSR-a — do RCE-a. Kao olakotnu okolnost može se istaknuti i manja vjerojatnost susreta s ranjivim konstrukcijama u konfiguraciji nego posljednji put.

Greška je ispravljena u verzijama 1.30.2 i 1.31.1 (commit ispravke).

Izvor: linux.org.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster