NGINX arrossega un error seriós al seu suport d’HTTP/3. L’identificador és CVE-2026-42530 i viu a ngx_http_v3_module, el mòdul que implementa QUIC. És un use-after-free: el codi torna a fer servir memòria que ja havia alliberat. Quan això passa dins d’un procés worker que atén connexions de qualsevol a internet, el problema deixa de ser teòric.
El detonant és a la capa QPACK, el mecanisme de compressió de capçaleres d’HTTP/3. Un client remot, sense autenticar-se, pot construir una sessió HTTP/3 manipulada que reobre un stream del codificador QPACK que ja estava tancat. Aquest segon ús toca memòria alliberada i el worker cau. En el pitjor dels casos, sobre un sistema sense ASLR o amb ASLR esquivable, l’atacant pot aprofitar la corrupció de memòria per executar codi amb els privilegis del worker.
A qui afecta
Només estan exposades les versions de NGINX Open Source 1.31.0 i 1.31.1 que tinguin HTTP/3 (QUIC) activat. La branca 1.31 va introduir canvis en aquesta part del codi i és on es va colar l’error. Si el teu servidor no escolta per HTTP/3 (és a dir, no tens directives listen ... quic; ni http3 on;), el mòdul vulnerable no entra en joc i aquest CVE no t’afecta. Les branques estables anteriors tampoc no apareixen assenyalades en aquest avís.
Gravetat
F5, que manté NGINX, ho classifica com a crític. La puntuació CVSS 4.0 és de 9.2, mentre que el càlcul en CVSS 3.1 queda en 8.1 (alta). La diferència té a veure amb com cada versió del barem pondera un error de xarxa, sense autenticació i amb potencial d’execució de codi. El vector d’atac és la xarxa i no requereix credencials ni interacció d’un usuari, encara que l’explotació per aconseguir RCE depèn de condicions del sistema (sobretot que ASLR no estigui disponible). L’escenari més probable a la pràctica és la caiguda repetida de workers, és a dir, denegació de servei.
Mitigació
La correcció és a NGINX 1.31.2. Actualitza a aquesta versió o a una de posterior i reinicia el servei. Si per algun motiu no pots aplicar el pegat de seguida, la via més directa és desactivar HTTP/3 traient els listeners QUIC de la teva configuració i deixant el trànsit sobre HTTP/2 i HTTP/1.1, que no fan servir el codi afectat. Mantenir ASLR activat al sistema (el normal en qualsevol distribució recent) redueix el risc que un error així passi de caiguda a execució de codi, però no substitueix el pegat.
Si gestiones NGINX a través dels paquets de la teva distribució, revisa els avisos de seguretat del teu proveïdor: les versions empaquetades solen portar el número de la branca upstream més un sufix propi, així que convé confirmar que el canvi d’1.31.2 està retroportat.
Si vols context sobre altres errors recents de NGINX, pots llegir el nostre article sobre la injecció man-in-the-middle en fer proxy a servidors TLS (DSA-6131-1).