Ny sårbarhed i nginx rewrite-modulet

Kort tid efter opdagelsen 18-årige blev der opdaget endnu en potentiel RCE, CVE-2026-9256, denne gang eksisterende endnu længere – 21 år, fra version 0.1.17, der blev udgivet i begyndelsen af 2005.
For at udnytte sårbarheden kræves der en rewrite-direktiv i serverkonfigurationen, hvor:

  • den første argument har overlappende udvalgte parametre for det regulære udtryk,
  • den anden bruger to eller flere af dem, men der anvendes ikke variable,
  • og enten er typen angivet som "redirect", eller parametrene i det andet argument findes efter spørgsmålstegnet.

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

Begge vil føre til buffer overflow ved behandling af anmodningen "\/++++++++++++++++++++++++++++++".

Som med den tidligere sårbarhed kan den beregnede bufferlængde ikke stemme overens med det faktiske antal data, der skrives til den – ved beregning af længden er ikke alle steder blevet taget højde for mulig escaping.

Det ovenstående kan føre til nedbrud af arbejdsgangen for nginx, og i fraværet af ALSR kan det føre til RCE. Som en formildende omstændighed kan man bemærke, at der er en endnu mindre sandsynlighed for at støde på sårbare konstruktioner i konfigurationen end sidst.

Fejlen er rettet i versioner 1.30.2 og 1.31.1 (commit til rettelsen).

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster