← Tornar als articles
Seguretat· 3 min de lectura

NGINX Rift (CVE-2026-42945): un error de fa 18 anys al mòdul rewrite permet RCE sense autenticar

El 13 de maig de 2026 F5 va publicar els pegats per a CVE-2026-42945, un error al mòdul de reescriptura de NGINX que els investigadors han batejat com a NGINX Rift. El que crida l’atenció no és només la gravetat (CVSS 4.0 de 9.2, crítica) sinó el temps que portava amagat. El codi vulnerable es va introduir a la versió 0.6.27 el 2008 i ha passat divuit anys sense que ningú el detectés.

Què és exactament

És un desbordament de buffer al heap (CWE-122) dins de ngx_http_rewrite_module, el component que processa les directives rewrite, if i set a la configuració de NGINX. El motor de scripts de NGINX treballa en dues passades: primer calcula la longitud de la cadena resultant i després la copia. El problema és que un indicador intern d’estat (is_args), que s’activa durant la fase de càlcul, es filtra a la fase de còpia. Quan una regla de rewrite combina una captura PCRE sense nom amb un signe d’interrogació a la cadena de reemplaçament, ngx_escape_uri acaba escrivint més enllà del buffer reservat.

El resultat és un desbordament determinista de 4.000 bytes. Les proves de concepte el disparen enviant una petició amb 349 bytes de farciment seguits de 2.000 caràcters que NGINX intenta escapar a la URI.

A qui afecta

A gairebé tothom que faci servir NGINX amb regles de reescriptura que encaixin en aquest patró. La vulnerabilitat arriba a NGINX Open Source des de la 0.6.27 fins a la 1.30.0 i a NGINX Plus de la R32 a la R36. També esquitxa desplegaments que depenen de NGINX per sota, com Ingress NGINX a Kubernetes o builds d’OpenResty.

Un atacant remot sense autenticació pot provocar el reinici repetit dels processos worker enviant peticions HTTP manipulades, cosa que ja constitueix una denegació de servei. En sistemes amb ASLR desactivat, o quan l’atacant aconsegueix esquivar aquesta protecció, el desbordament obre la porta a execució remota de codi.

I no és teòric. VulnCheck va detectar explotació activa a la xarxa des del 16 de maig de 2026, pocs dies després que es publiqués el pegat.

Gravetat

Crítica. Parlem d’un servidor web que sol estar exposat directament a internet, una via d’explotació que no necessita credencials i codi de prova públic. La combinació d’antiguitat, abast i exposició el situa entre els avisos més seriosos del mes.

Mitigació i pegats

El primer és actualitzar. El projecte NGINX va corregir l’error a 1.30.1 (branca estable) i 1.31.0 (mainline). Si fas servir paquets de la teva distribució, espera la versió que l’incorpori en lloc de compilar a mà.

En el cas de Red Hat Enterprise Linux 9, l’avís RHSA-2026:18029 (severitat crítica) lliura el paquet corregit nginx-1.20.1-24.el9_7.3, amb el backport del pegat sobre la branca 1.20.1 que manté Red Hat. Cobreix RHEL 9 en totes les seves arquitectures (x86_64, aarch64, ppc64le, s390x) i les variants de suport estès.

Si no pots pegar de seguida, revisa la teva configuració i elimina temporalment les directives rewrite que facin servir captures PCRE sense nom juntament amb un signe d’interrogació al reemplaçament. Redueix la superfície, encara que no substitueix l’actualització. Després de pegar, reinicia NGINX perquè es carreguin els binaris nous.

Si gestiones RHEL en producció et pot interessar repassar les novetats de Red Hat Enterprise Linux 10.2 per planificar futures migracions.

Font