{"id":11470,"date":"2026-05-14T12:10:21","date_gmt":"2026-05-14T18:10:21","guid":{"rendered":"https:\/\/beaconlab.us\/?post_type=publicacion&#038;p=11470"},"modified":"2026-05-14T12:10:41","modified_gmt":"2026-05-14T18:10:41","slug":"alerta-2026-49-vulnerabilidad-critica-de-mas-de-18-anos-en-nginx","status":"publish","type":"publicacion","link":"https:\/\/beaconlab.us\/es\/publicacion\/alerta-2026-49-vulnerabilidad-critica-de-mas-de-18-anos-en-nginx\/","title":{"rendered":"Alerta 2026-49  Vulnerabilidad critica de mas de 18 a\u00f1os en NGINX"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Producto(s) afectado(s):&nbsp;<\/h2>\n\n\n\n<p>La vulnerabilidad afecta a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>NGINX Open Source<\/strong>\n<ul class=\"wp-block-list\">\n<li>Versiones desde\u00a0<strong>0.6.27 hasta 1.30.0<\/strong>\u00a0(incluidas).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NGINX Plus<\/strong>\n<ul class=\"wp-block-list\">\n<li>Versiones comerciales\u00a0<strong>R32 a R36<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>La vulnerabilidad se encuentra en el m\u00f3dulo&nbsp;<strong>ngx_http_rewrite_module<\/strong>&nbsp;y solo se manifiesta cuando se cumplen ciertas condiciones en las directivas&nbsp;<strong>rewrite<\/strong>,&nbsp;<strong>if<\/strong>&nbsp;o&nbsp;<strong>set<\/strong>&nbsp;que usan capturas PCRE sin nombre (<strong>$1<\/strong>,&nbsp;<strong>$2<\/strong>, etc.) con cadenas de reemplazo que contienen el car\u00e1cter&nbsp;<strong>?<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Descripci\u00f3n<\/h2>\n\n\n\n<p>Recientemente se ha publicado una vulnerabilidad llamada <strong>CVE\u20112026\u201142945 con un score CVSSv3.1 8.1<\/strong>, apodada&nbsp;<em>\u201cNGINX Rift\u201d<\/em>, es un&nbsp;<strong>heap buffer overflow<\/strong>&nbsp;en el m\u00f3dulo&nbsp;ngx_http_rewrite_module&nbsp;de NGINX que puede ser explotado de forma remota mediante una \u00fanica petici\u00f3n HTTP especialmente dise\u00f1ada. Bajo configuraci\u00f3n vulnerable, permite a un atacante no autenticado provocar&nbsp;<strong>reinicios de los procesos worker<\/strong>&nbsp;(Denial of Service), y en sistemas donde&nbsp;<strong>ASLR est\u00e1 desactivado o debilitado<\/strong>, puede abrir la puerta a&nbsp;<strong>ejecuci\u00f3n remota de c\u00f3digo (RCE)<\/strong>.<\/p>\n\n\n\n<p>F5, como CNA de este CVE, eval\u00faa el fallo con una severidad de&nbsp;<strong>9.2 (CRITICAL) en CVSS v4.0<\/strong>&nbsp;y 8.1 (High) en CVSS v3.1, y confirma que el bug lleva presente en el c\u00f3digo desde 2008, afectando a todas las versiones de NGINX Open Source desde la 0.6.27. Dado que NGINX se usa masivamente como reverse proxy y front door de aplicaciones web y APIs, el impacto potencial para infraestructuras empresariales e ISPs es muy alto.<\/p>\n\n\n\n<p><strong>Condiciones para que exista la vulnerabilidad<\/strong><\/p>\n\n\n\n<p>El problema est\u00e1 en c\u00f3mo&nbsp;<strong>ngx_http_rewrite_module&nbsp;<\/strong>gestiona determinadas reglas que combinan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Una directiva\u00a0<strong>rewrite,\u00a0if\u00a0o\u00a0set<\/strong>\u00a0que utiliza\u00a0<strong>capturas PCRE sin nombre<\/strong>\u00a0($1,\u00a0$2, \u2026)<\/li>\n\n\n\n<li>Una\u00a0<strong>cadena de reemplazo que incluye\u00a0?<\/strong>\u00a0(habitual cuando se reescriben rutas y query strings)<\/li>\n\n\n\n<li>Patrones donde ciertos caracteres como\u00a0+,\u00a0%\u00a0y\u00a0&amp;\u00a0pueden \u201cexpandirse\u201d al re\u2011escaparse, haciendo que la longitud resultante sea mayor que la calculada inicialmente.<\/li>\n<\/ul>\n\n\n\n<p>En estas condiciones, el m\u00f3dulo calcula un tama\u00f1o de buffer insuficiente para el resultado, pero aun as\u00ed escribe la cadena re\u2011escapada, lo que provoca que la escritura se&nbsp;<strong>desborde m\u00e1s all\u00e1 del final del buffer<\/strong>&nbsp;en el heap.<\/p>\n\n\n\n<p><strong>Vector de ataque<\/strong><\/p>\n\n\n\n<p>Un atacante remoto puede:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enviar\u00a0<strong>una \u00fanica petici\u00f3n HTTP<\/strong>\u00a0cuidadosamente construida hacia un servidor NGINX que tenga reglas\u00a0rewrite\u00a0vulnerables.<\/li>\n\n\n\n<li>Forzar que se ejecute la ruta de c\u00f3digo donde se produce el desbordamiento.<\/li>\n\n\n\n<li>Como m\u00ednimo, provocar que el worker de NGINX se caiga y se reinicie, generando un\u00a0<strong>DoS intermitente<\/strong>\u00a0o continuado.<\/li>\n\n\n\n<li>En entornos donde\u00a0<strong>ASLR est\u00e1 desactivado<\/strong>\u00a0(por ejemplo, sistemas legacy o configuraciones endurecidas manualmente pero mal testeadas), el contenido controlado que se escribe fuera del buffer puede permitir\u00a0<strong>RCE<\/strong>\u00a0si el atacante consigue una primitiva de corrupci\u00f3n \u00fatil.<\/li>\n<\/ul>\n\n\n\n<p>Importante para sysadmins: el fallo no requiere autenticaci\u00f3n, ni m\u00f3dulos \u201cex\u00f3ticos\u201d: solo una configuraci\u00f3n desafortunada del propio&nbsp;<\/p>\n\n\n\n<p>A las pocas horas de publicarse el advisory, varios investigadores han liberado PoC p\u00fablicos para CVE\u20112026\u201142945, incluyendo exploits funcionales en GitHub y write\u2011ups t\u00e9cnicos detallando la cadena de explotaci\u00f3n. Esto reduce dr\u00e1sticamente la ventana de tiempo entre la divulgaci\u00f3n y la explotaci\u00f3n masiva, por lo que se recomienda tratar esta vulnerabilidad como cr\u00edtica y de explotaci\u00f3n probable a muy corto plazo, priorizando la aplicaci\u00f3n de parches y\/o la reconfiguraci\u00f3n de reglas rewrite vulnerables.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h2>\n\n\n\n<p>Mientras no se pueda aplicar actualizaci\u00f3n, F5 y varios vendors recomiendan las siguientes mitigaciones temporales:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Revisar y corregir reglas\u00a0rewrite\u00a0vulnerables<\/strong>\n<ul class=\"wp-block-list\">\n<li>Auditar la configuraci\u00f3n NGINX (nginx.conf\u00a0y\u00a0conf.d\/*.conf) buscando directivas\u00a0rewrite,\u00a0if\u00a0y\u00a0set\u00a0que:\n<ul class=\"wp-block-list\">\n<li>usen capturas\u00a0$1,\u00a0$2, etc. y<\/li>\n\n\n\n<li>incluyan\u00a0?\u00a0en la cadena de reemplazo.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Reescribir estas reglas para evitar combinaciones que provoquen re\u2011escapado \u201cexpandido\u201d (por ejemplo, minimizando uso de\u00a0+,\u00a0%,\u00a0&amp;\u00a0en patrones o cambiando la forma de construir la query string).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Reducir superficie de exposici\u00f3n<\/strong>\n<ul class=\"wp-block-list\">\n<li>Limitar el acceso desde Internet solo a los endpoints necesarios (WAF, reverse proxies adicionales, VPN, etc.).<\/li>\n\n\n\n<li>Usar listas de control de acceso (ACL) o firewalls para segmentar qui\u00e9n puede llegar a NGINX si se trata de paneles internos o APIs administrativas.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Endurecer el sistema operativo<\/strong>\n<ul class=\"wp-block-list\">\n<li>Verificar que\u00a0<strong>ASLR est\u00e9 habilitado<\/strong>\u00a0en todos los hosts que ejecutan NGINX; esto baja de forma significativa la probabilidad de explotaci\u00f3n RCE, aunque no evita el DoS.<\/li>\n\n\n\n<li>Asegurar que otras mitigaciones como stack canaries, RELRO y PIE est\u00e9n activas seg\u00fan la distro.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Monitorizaci\u00f3n y detecci\u00f3n<\/strong>\n<ul class=\"wp-block-list\">\n<li>Activar logs de error y acceso y\u00a0<strong>monitorizar reinicios frecuentes<\/strong>\u00a0de procesos worker NGINX, especialmente en hosts expuestos a Internet.<\/li>\n\n\n\n<li>Revisar herramientas EDR\/NIDS para detectar patrones de request repetitivos hacia paths que disparan reglas\u00a0rewrite\u00a0complejas.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Soluci\u00f3n:<\/h2>\n\n\n\n<p>La remediaci\u00f3n definitiva pasa por&nbsp;<strong>actualizar NGINX a versiones corregidas<\/strong>&nbsp;seg\u00fan la gu\u00eda de F5:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>NGINX Open Source<\/strong>\n<ul class=\"wp-block-list\">\n<li>Actualizar a una versi\u00f3n\u00a0<strong>posterior a 1.30.0<\/strong>\u00a0donde el bug ha sido corregido (por ejemplo, versiones 1.30.x o 1.31.x ya parcheadas seg\u00fan tu distribuci\u00f3n).<\/li>\n\n\n\n<li>En distros Linux, aplicar los paquetes de seguridad provistos por el vendor (AlmaLinux, Debian, Ubuntu, etc.) que ya incorporan el fix para CVE\u20112026\u201142945.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NGINX Plus (F5)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Actualizar a las versiones\u00a0<strong>R37 o superiores<\/strong>, seg\u00fan el advisory K000161019 y la Quarterly Security Notification de mayo 2026.<\/li>\n\n\n\n<li>Seguir la gu\u00eda oficial de upgrade de F5 para NGINX Plus, validando compatibilidad con m\u00f3dulos comerciales y entorno (K000160932 y documentaci\u00f3n de actualizaci\u00f3n de NGINX Plus).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Plan de actualizaci\u00f3n recomendado<\/strong>\n<ul class=\"wp-block-list\">\n<li>Probar primero la actualizaci\u00f3n en un entorno de\u00a0<strong>pre\u2011producci\u00f3n<\/strong>\u00a0que replique las reglas\u00a0rewrite\u00a0y el tr\u00e1fico t\u00edpico.<\/li>\n\n\n\n<li>Medir impacto en rendimiento y compatibilidad (m\u00f3dulos de terceros, WAF, Lua, etc.).<\/li>\n\n\n\n<li>Programar ventana de mantenimiento para producci\u00f3n y aplicar la actualizaci\u00f3n siguiendo la gu\u00eda de rollback (snapshot de VM, backup de configs).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>En todos los casos, se recomienda documentar expl\u00edcitamente que el riesgo asociado a CVE\u20112026\u201142945 queda mitigado solo cuando&nbsp;<strong>se ha actualizado NGINX<\/strong>&nbsp;y, en paralelo, se han revisado las reglas&nbsp;rewrite&nbsp;problem\u00e1ticas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp;<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Informaci\u00f3n adicional:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>F5 \u2013\u00a0<a href=\"https:\/\/my.f5.com\/manage\/s\/article\/K000161019\" target=\"_blank\" rel=\"noreferrer noopener\">K000161019: NGINX ngx_http_rewrite_module vulnerability CVE\u20112026\u201142945<\/a><\/li>\n\n\n\n<li>F5 \u2013\u00a0<a href=\"https:\/\/my.f5.com\/manage\/s\/article\/K000160932\" target=\"_blank\" rel=\"noreferrer noopener\">K000160932: Quarterly Security Notification (May 2026)<\/a><\/li>\n\n\n\n<li>NVD \u2013\u00a0<a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2026-42945\" target=\"_blank\" rel=\"noreferrer noopener\">CVE\u20112026\u201142945<\/a><\/li>\n\n\n\n<li>depthfirst \u2013\u00a0<a href=\"https:\/\/needhelp.icu\/blogs\/nginx-rift-cve\" target=\"_blank\" rel=\"noreferrer noopener\">NGINX Rift (CVE\u20112026\u201142945): An 18\u2011Year\u2011Old Heap Overflow<\/a><\/li>\n\n\n\n<li>AlmaLinux \u2013\u00a0<a href=\"https:\/\/almalinux.org\/blog\/2026-05-13-nginx-rift-cve-2026-42945\/\" target=\"_blank\" rel=\"noreferrer noopener\">NGINX Rift (CVE\u20112026\u201142945)<\/a><\/li>\n<\/ul>\n","protected":false},"featured_media":11471,"template":"","class_list":["post-11470","publicacion","type-publicacion","status-publish","has-post-thumbnail","hentry"],"acf":{"activar_pdf_link":false,"pdf":null,"numero_de_boletin":"49","traffic_light_protocol":"White"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion"}],"about":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/types\/publicacion"}],"version-history":[{"count":1,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11470\/revisions"}],"predecessor-version":[{"id":11473,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11470\/revisions\/11473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/media\/11471"}],"wp:attachment":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/media?parent=11470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}