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

- **Publicat el:** 2026-05-13
- **Categoria:** Seguretat
- **Pàgina original:** https://linuxgratis.com/ca/articles/rhsa-2026-18029-nginx-rift-heap-overflow-rewrite-rhel9

Un desbordament de heap a ngx_http_rewrite_module amb CVSS 9.2 deixa NGINX exposat a execució remota de codi. Red Hat ja el corregeix a RHEL 9 amb RHSA-2026:18029. Què és, a qui afecta i com mitigar-lo.

---

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](/ca/rhel-10-2) per planificar futures migracions.

## Font

- Red Hat Security Advisory: [RHSA-2026:18029](https://access.redhat.com/errata/RHSA-2026:18029)
- NVD: [CVE-2026-42945](https://nvd.nist.gov/vuln/detail/CVE-2026-42945)
