<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Actualizaciones de seguridad on KnightLi Blog</title>
        <link>https://www.knightli.com/es/categories/security-updates/</link>
        <description>Recent content in Actualizaciones de seguridad on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 17 May 2026 09:29:03 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/categories/security-updates/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>ssh-keysign-pwn (CVE-2026-46333): filtración local de información en Linux, claves host SSH y riesgo para /etc/shadow</title>
        <link>https://www.knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</link>
        <pubDate>Sun, 17 May 2026 09:29:03 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</guid>
        <description>&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; se refiere a un conjunto de rutas de explotación alrededor de un fallo lógico en &lt;code&gt;__ptrace_may_access()&lt;/code&gt; del Linux kernel, asignado como &lt;code&gt;CVE-2026-46333&lt;/code&gt;. No es una vulnerabilidad remota sin autenticación y no entrega directamente una shell de root, pero el riesgo sigue siendo alto: un usuario local con pocos privilegios podría leer archivos sensibles de root que no debería poder acceder, como claves privadas de host SSH o &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para equipos de operaciones, la prioridad no es reproducir un PoC. La prioridad es identificar máquinas afectadas, actualizar el kernel, reiniciar para entrar en el kernel corregido y rotar claves de host SSH o restablecer contraseñas cuando sea necesario.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;Esta vulnerabilidad merece una prioridad alta por cuatro motivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La puede activar un usuario local de bajo privilegio, sin root.&lt;/li&gt;
&lt;li&gt;Ya existe PoC público, lo que reduce mucho la barrera de explotación.&lt;/li&gt;
&lt;li&gt;Los objetivos potenciales no son archivos comunes, sino claves privadas de host SSH y &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;La corrección requiere parche de kernel y reinicio; instalar paquetes sin reiniciar no basta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tus servidores tienen múltiples usuarios, shell local, hosting compartido, CI runners, hosts de contenedores, aulas, bastiones o cualquier usuario local que no sea completamente confiable, conviene tratarlo primero.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-la-vulnerabilidad&#34;&gt;Qué es la vulnerabilidad
&lt;/h2&gt;&lt;p&gt;Qualys publicó detalles en oss-security el 15 de mayo de 2026. Antes había informado a &lt;code&gt;security@kernel.org&lt;/code&gt; de un problema lógico en &lt;code&gt;__ptrace_may_access()&lt;/code&gt; del Linux kernel, y la corrección upstream ya había sido integrada por Linus. Después apareció código de explotación público, por lo que Qualys compartió la información en oss-security.&lt;/p&gt;
&lt;p&gt;El equipo CVE del Linux kernel asignó luego &lt;code&gt;CVE-2026-46333&lt;/code&gt;. La página de NVD muestra kernel.org como fuente, y la descripción corresponde al commit del kernel &lt;code&gt;ptrace: slightly saner &#39;get_dumpable()&#39; logic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En términos simples, el fallo está en la ruta de salida de procesos. Cuando algunos procesos privilegiados están terminando, la lógica del kernel relacionada con las comprobaciones de acceso de &lt;code&gt;ptrace&lt;/code&gt; puede omitir una comprobación dumpable que debería aplicarse, porque la tarea objetivo ya no tiene &lt;code&gt;mm&lt;/code&gt;. Un atacante puede competir en una ventana muy estrecha y obtener descriptores de archivo que el proceso privilegiado en salida todavía mantiene abiertos.&lt;/p&gt;
&lt;p&gt;Por eso se lo llama &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;: una de las rutas públicas de explotación gira alrededor de &lt;code&gt;ssh-keysign&lt;/code&gt; para leer SSH host private keys.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-puede-exponer-claves-host-ssh-y-etcshadow&#34;&gt;Por qué puede exponer claves host SSH y /etc/shadow
&lt;/h2&gt;&lt;p&gt;En esencia, es una filtración local de información. Abusa de una ventana durante la salida de un programa privilegiado en la que el descriptor de memoria ya se separó, pero los descriptores de archivo aún no se cerraron.&lt;/p&gt;
&lt;p&gt;El aviso de AlmaLinux explica el riesgo con claridad: si un programa privilegiado abrió archivos sensibles antes de bajar privilegios, y el atacante logra capturar el descriptor de archivo correspondiente durante la ventana de salida, esos archivos sensibles podrían leerse.&lt;/p&gt;
&lt;p&gt;Dos objetivos frecuentes en la discusión pública son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh-keysign&lt;/code&gt;: puede involucrar claves privadas de host SSH como &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chage&lt;/code&gt;: puede involucrar &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si se filtran claves privadas de host SSH, un atacante podría suplantar el host y debilitar la confianza en la identidad SSH del servidor. Si se filtra &lt;code&gt;/etc/shadow&lt;/code&gt;, un atacante puede crackear hashes de contraseña offline y ampliar el compromiso después.&lt;/p&gt;
&lt;p&gt;Por eso debe tratarse como un problema de alta prioridad aunque no sea una vulnerabilidad de &amp;ldquo;root shell directo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-evaluar-la-exposición&#34;&gt;Cómo evaluar la exposición
&lt;/h2&gt;&lt;p&gt;Desde la perspectiva upstream, es una vulnerabilidad del Linux kernel. Los registros de NVD muestran que el problema entró en el dataset de NVD el 15 de mayo de 2026, y en ese momento todavía no tenía puntuación CVSS.&lt;/p&gt;
&lt;p&gt;El estado por distribución debe verificarse en los avisos de cada proveedor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AlmaLinux 8, 9 y 10 publicaron orientación y el 16 de mayo de 2026 actualizaron el aviso para indicar que los patched kernels ya estaban en repositorios de producción.&lt;/li&gt;
&lt;li&gt;Debian Security Tracker lista estados vulnerable/fixed y versiones corregidas para bullseye, bookworm, trixie, sid y otras ramas.&lt;/li&gt;
&lt;li&gt;Para otras distribuciones, revisa las páginas oficiales de seguridad o repositorios de Ubuntu, Red Hat, SUSE, Arch, Alpine, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No evalúes la seguridad solo por la versión upstream del kernel. Las distribuciones hacen backport de correcciones, por lo que un mismo número de versión aparente puede representar estados de parche diferentes.&lt;/p&gt;
&lt;h2 id=&#34;qué-máquinas-priorizar&#34;&gt;Qué máquinas priorizar
&lt;/h2&gt;&lt;p&gt;Orden recomendado de prioridad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Servidores multiusuario y hosts compartidos.&lt;/li&gt;
&lt;li&gt;Bastiones, máquinas de enseñanza, equipos de desarrollo y otros sistemas con cuentas shell normales.&lt;/li&gt;
&lt;li&gt;CI runners, máquinas de build y nodos de plataformas de hosting.&lt;/li&gt;
&lt;li&gt;Hosts de contenedores y virtualización, sobre todo donde conviven workloads no completamente confiables.&lt;/li&gt;
&lt;li&gt;Máquinas con servicios públicos. La vulnerabilidad requiere acceso local, pero el riesgo se combina si un bug web, RCE, contraseña débil u otro camino da al atacante un punto de apoyo de bajo privilegio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los escritorios de un solo usuario tienen un riesgo relativamente menor, pero aun así deberían actualizarse con el sistema. La ejecución local de código con bajo privilegio no es rara en escritorios, a través de navegadores, herramientas de desarrollo, scripts y software de terceros.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-corrección&#34;&gt;Recomendaciones de corrección
&lt;/h2&gt;&lt;p&gt;La solución preferida es instalar el kernel corregido que entrega la distribución y reiniciar.&lt;/p&gt;
&lt;p&gt;Los comandos cambian por distribución, pero el principio es el mismo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Actualizar metadatos de paquetes.&lt;/li&gt;
&lt;li&gt;Instalar el paquete kernel que contiene la corrección de &lt;code&gt;CVE-2026-46333&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reiniciar en el kernel nuevo.&lt;/li&gt;
&lt;li&gt;Usar &lt;code&gt;uname -r&lt;/code&gt; y el aviso de seguridad de la distribución para verificar que el kernel en ejecución está corregido.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El aviso de AlmaLinux indica que los kernels corregidos están disponibles en repositorios de producción y que los usuarios pueden ejecutar el &lt;code&gt;dnf upgrade&lt;/code&gt; habitual y reiniciar. Debian tracker también lista fixed versions para varias ramas.&lt;/p&gt;
&lt;p&gt;Importante: si solo instalas un paquete kernel nuevo pero no reinicias, el kernel antiguo vulnerable sigue ejecutándose.&lt;/p&gt;
&lt;h2 id=&#34;mitigación-temporal-endurecer-ptrace_scope&#34;&gt;Mitigación temporal: endurecer ptrace_scope
&lt;/h2&gt;&lt;p&gt;Si no puedes reiniciar de inmediato, endurece primero &lt;code&gt;ptrace_scope&lt;/code&gt; de Yama.&lt;/p&gt;
&lt;p&gt;Qualys confirmó en una respuesta posterior en oss-security que configurar &lt;code&gt;/proc/sys/kernel/yama/ptrace_scope&lt;/code&gt; en &lt;code&gt;2&lt;/code&gt; (admin-only attach) o &lt;code&gt;3&lt;/code&gt; (no attach) bloquea las rutas públicas de explotación que conocen. También aclararon que, en teoría, podrían existir otros métodos de explotación, por lo que esto es una mitigación, no una corrección.&lt;/p&gt;
&lt;p&gt;Configuración temporal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w kernel.yama.ptrace_scope&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Configuración persistente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;kernel.yama.ptrace_scope = 3&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/sysctl.d/99-ssh-keysign-pwn.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;ptrace_scope=3&lt;/code&gt; desactiva ptrace attach y puede afectar flujos de depuración como &lt;code&gt;gdb&lt;/code&gt; y &lt;code&gt;strace -p&lt;/code&gt;. Si necesitas depuración en producción, evalúa &lt;code&gt;2&lt;/code&gt;. En cualquier caso, agenda la actualización de kernel y el reinicio cuanto antes.&lt;/p&gt;
&lt;h2 id=&#34;hay-que-rotar-claves-host-ssh&#34;&gt;¿Hay que rotar claves host SSH?
&lt;/h2&gt;&lt;p&gt;Conviene adoptar una postura conservadora si la máquina tenía alguna de estas condiciones durante la ventana de exposición:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios locales no confiables.&lt;/li&gt;
&lt;li&gt;Hosting compartido o entornos multi-tenant de contenedores/CI.&lt;/li&gt;
&lt;li&gt;Vulnerabilidades web, contraseñas débiles, scripts de cadena de suministro u otros caminos que puedan dar un punto de apoyo local.&lt;/li&gt;
&lt;li&gt;Procesos locales sospechosos, comportamiento de depuración anómalo o archivos PoC públicos en logs.&lt;/li&gt;
&lt;li&gt;Exposición prolongada antes de aplicar la corrección.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una respuesta conservadora incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rotar SSH host keys después de parchear y reiniciar.&lt;/li&gt;
&lt;li&gt;Actualizar sistemas de gestión de huellas de hosts conocidos.&lt;/li&gt;
&lt;li&gt;Notificar a automatizaciones que dependan de esa huella de host.&lt;/li&gt;
&lt;li&gt;Revisar alertas de conexión SSH para no confundir cambios legítimos de huella con ataques de intermediario, ni ignorar riesgos reales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sospechas que &lt;code&gt;/etc/shadow&lt;/code&gt; se filtró, evalúa también restablecimiento de contraseñas, prohibición de contraseñas débiles y revisión de hashes antiguos que puedan crackearse offline.&lt;/p&gt;
&lt;h2 id=&#34;qué-monitorear&#34;&gt;Qué monitorear
&lt;/h2&gt;&lt;p&gt;La ventana de explotación es breve, así que los logs tradicionales podrían no capturarlo todo. Aun así, revisa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Archivos como &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;, &lt;code&gt;chage_pwn&lt;/code&gt; o artefactos PoC similares en directorios de usuarios normales.&lt;/li&gt;
&lt;li&gt;Actividad de compilación sospechosa, como programas C desconocidos compilados en poco tiempo.&lt;/li&gt;
&lt;li&gt;Señales de acceso anómalo a &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt; o &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Actividad inusual de &lt;code&gt;pidfd_getfd&lt;/code&gt;, &lt;code&gt;ptrace&lt;/code&gt; o depuradores.&lt;/li&gt;
&lt;li&gt;Reportes externos de cambios inesperados en la huella del host SSH.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas señales no prueban que hubo explotación, y su ausencia tampoco prueba que no la hubo. Las prioridades reales siguen siendo parchear, reiniciar, rotar credenciales y aislar el riesgo.&lt;/p&gt;
&lt;h2 id=&#34;malentendidos-comunes&#34;&gt;Malentendidos comunes
&lt;/h2&gt;&lt;p&gt;Primero: no es una vulnerabilidad remota de OpenSSH. El nombre incluye &lt;code&gt;ssh-keysign&lt;/code&gt;, pero la causa raíz está en la lógica de comprobación de acceso &lt;code&gt;ptrace&lt;/code&gt; del Linux kernel, no en el flujo de autenticación remota de &lt;code&gt;sshd&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Segundo: no tener usuarios locales no elimina todo el riesgo. La vulnerabilidad sí requiere ejecución local, pero muchas cadenas reales obtienen primero un punto de apoyo local de bajo privilegio mediante servicios web, CI, scripts, contraseñas débiles o escapes de contenedor.&lt;/p&gt;
&lt;p&gt;Tercero: configurar &lt;code&gt;ptrace_scope&lt;/code&gt; no basta. Es una mitigación temporal, no una corrección raíz. La actualización del kernel y el reinicio siguen siendo necesarios.&lt;/p&gt;
&lt;p&gt;Cuarto: no haber obtenido root no significa que no haya incidente. La filtración de claves privadas de host SSH o &lt;code&gt;/etc/shadow&lt;/code&gt; puede bastar para movimiento lateral, suplantación de host y cracking offline.&lt;/p&gt;
&lt;h2 id=&#34;checklist-de-respuesta&#34;&gt;Checklist de respuesta
&lt;/h2&gt;&lt;p&gt;Orden recomendado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventariar hosts Linux afectados, especialmente entornos multiusuario y compartidos.&lt;/li&gt;
&lt;li&gt;Revisar avisos oficiales de seguridad de la distribución e identificar la fixed kernel version.&lt;/li&gt;
&lt;li&gt;Instalar el kernel corregido y reiniciar.&lt;/li&gt;
&lt;li&gt;En máquinas que no puedan reiniciarse de inmediato, configurar &lt;code&gt;kernel.yama.ptrace_scope=2&lt;/code&gt; o &lt;code&gt;3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Verificar la versión del kernel en ejecución después de la corrección.&lt;/li&gt;
&lt;li&gt;Rotar SSH host keys en máquinas de alto riesgo.&lt;/li&gt;
&lt;li&gt;Si se sospecha exposición de &lt;code&gt;/etc/shadow&lt;/code&gt;, evaluar restablecimiento de contraseñas y auditoría de cuentas.&lt;/li&gt;
&lt;li&gt;Buscar PoCs públicos, compilaciones anómalas y comportamiento local de depuración sospechoso.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; (&lt;code&gt;CVE-2026-46333&lt;/code&gt;) es una vulnerabilidad local de filtración de información causada por lógica relacionada con &lt;code&gt;__ptrace_may_access()&lt;/code&gt; en el Linux kernel. No permite entrar remotamente de forma directa y no concede una shell de root directa, pero puede permitir que un usuario local de bajo privilegio lea archivos sensibles de alto valor. Eso la vuelve especialmente importante en entornos multiusuario, hosting compartido, CI y hosts de contenedores.&lt;/p&gt;
&lt;p&gt;La corrección fiable es actualizar al kernel corregido de la distribución y reiniciar. &lt;code&gt;ptrace_scope=2/3&lt;/code&gt; puede servir como mitigación temporal, pero no reemplaza el parche. En hosts críticos expuestos durante la ventana de riesgo, también conviene evaluar rotación de claves host SSH y riesgo de contraseñas.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: divulgación de Qualys sobre el problema lógico en __ptrace_may_access()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/9&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirma el identificador CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirma la mitigación temporal con ptrace_scope&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security-tracker.debian.org/tracker/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Debian Security Tracker: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/he/blog/2026-05-15-ssh-keysign-pwn-cve-2026-46333/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AlmaLinux: ssh-keysign-pwn (CVE-2026-46333) Patches Released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/torvalds/linux/commit/31e62c2ebbfdc3fe3dbdf5e02c92a9dc67087a3a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux upstream fix: ptrace get_dumpable() logic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo comprobar CVE-2026-42945: condiciones de Nginx Rift, revisión de versiones y recomendaciones de actualización</title>
        <link>https://www.knightli.com/es/2026/05/15/nginx-rift-cve-2026-42945/</link>
        <pubDate>Fri, 15 May 2026 17:55:42 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/15/nginx-rift-cve-2026-42945/</guid>
        <description>&lt;p&gt;&lt;code&gt;CVE-2026-42945&lt;/code&gt; es una vulnerabilidad de seguridad en NGINX Open Source y NGINX Plus. También se la conoce como &lt;code&gt;Nginx Rift&lt;/code&gt;. El problema está en &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;, y el tipo de vulnerabilidad es heap-based buffer overflow.&lt;/p&gt;
&lt;p&gt;Este tipo de noticia se convierte con facilidad en titulares como &amp;ldquo;oculta durante 18 años&amp;rdquo;, &amp;ldquo;control remoto sin contraseña&amp;rdquo; o &amp;ldquo;30% de servidores afectados&amp;rdquo;. Esas frases se propagan bien, pero al leer los parches y la descripción de NVD conviene separar el riesgo en hechos concretos: el problema es grave y no requiere una cuenta iniciada; pero no todos los Nginx quedan comprometidos automáticamente. Para activarlo hacen falta condiciones específicas de configuración rewrite y de solicitud.&lt;/p&gt;
&lt;h2 id=&#34;empezar-por-la-descripción-oficial&#34;&gt;Empezar por la descripción oficial
&lt;/h2&gt;&lt;p&gt;La descripción de NVD para &lt;code&gt;CVE-2026-42945&lt;/code&gt; puede resumirse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Afecta a NGINX Plus y NGINX Open Source.&lt;/li&gt;
&lt;li&gt;La vulnerabilidad está en &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;El problema puede activarse cuando una directiva &lt;code&gt;rewrite&lt;/code&gt; va seguida de &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt;, se usan grupos de captura PCRE sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;, y la cadena de reemplazo contiene un signo de interrogación &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Un atacante no autenticado puede enviar una solicitud construida para activar la vulnerabilidad.&lt;/li&gt;
&lt;li&gt;El resultado puede ser un heap buffer overflow y el reinicio de un proceso worker de NGINX.&lt;/li&gt;
&lt;li&gt;Si ASLR está desactivado en el sistema, la ejecución de código es posible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;F5, como CNA, asigna estas puntuaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CVSS v4.0: &lt;code&gt;9.2&lt;/code&gt;, Critical.&lt;/li&gt;
&lt;li&gt;CVSS v3.1: &lt;code&gt;8.1&lt;/code&gt;, High.&lt;/li&gt;
&lt;li&gt;CWE: &lt;code&gt;CWE-122 Heap-based Buffer Overflow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que no se trata de un caso normal de &amp;ldquo;mala configuración que causa un 404&amp;rdquo;. Es una vulnerabilidad de seguridad de memoria cubierta por una corrección oficial de Nginx.&lt;/p&gt;
&lt;h2 id=&#34;qué-afirmaciones-necesitan-contexto&#34;&gt;Qué afirmaciones necesitan contexto
&lt;/h2&gt;&lt;p&gt;Primero, &amp;ldquo;sin contraseña&amp;rdquo; debe entenderse como ataque no autenticado. Es decir, el atacante no necesita entrar a un panel de administración de Nginx, obtener SSH ni tener una cuenta de la aplicación. Pero eso no significa que cualquier Nginx expuesto a internet pueda tomarse sin más.&lt;/p&gt;
&lt;p&gt;Segundo, &amp;ldquo;control remoto directo&amp;rdquo; depende de las condiciones. La formulación oficial más prudente es que la vulnerabilidad puede causar reinicios de procesos worker; en sistemas donde ASLR está desactivado, la ejecución de código es un resultado posible. En entornos con ASLR activado, endurecimiento de compilación de la distribución y permisos de ejecución restringidos, la ruta de riesgo es más compleja.&lt;/p&gt;
&lt;p&gt;Tercero, &amp;ldquo;30% de servidores afectados&amp;rdquo; no debe interpretarse como &amp;ldquo;toda la cuota de mercado de Nginx equivale a superficie expuesta&amp;rdquo;. La exposición real depende de la versión, de si el módulo afectado está presente, de si existe la configuración rewrite concreta, de si la distribución ya aplicó backport del parche y del estado de endurecimiento del entorno donde corre Nginx.&lt;/p&gt;
&lt;p&gt;La forma más precisa de decidirlo es sencilla: si ejecutas Nginx en producción, revísalo pronto; pero no decidas si estás afectado solo por el porcentaje de un titular.&lt;/p&gt;
&lt;h2 id=&#34;cómo-determinar-el-alcance-afectado&#34;&gt;Cómo determinar el alcance afectado
&lt;/h2&gt;&lt;p&gt;Según la información de publicación de nginx.org, las versiones &lt;code&gt;nginx-1.30.1&lt;/code&gt; stable y &lt;code&gt;nginx-1.31.0&lt;/code&gt; mainline publicadas el 13 de mayo de 2026 incluyen varias correcciones de seguridad, entre ellas el buffer overflow de &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt; registrado como &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si usas código fuente oficial de Nginx o paquetes oficiales, prioriza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NGINX Open Source stable: actualizar a &lt;code&gt;1.30.1&lt;/code&gt; o posterior.&lt;/li&gt;
&lt;li&gt;NGINX Open Source mainline: actualizar a &lt;code&gt;1.31.0&lt;/code&gt; o posterior.&lt;/li&gt;
&lt;li&gt;NGINX Plus: revisar la versión corregida para la rama correspondiente de F5.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si usas Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Alpine, imágenes de contenedor, Plesk, paneles de control, Ingress Controller o componentes administrados por un proveedor cloud, no mires solo la versión upstream que muestra &lt;code&gt;nginx -v&lt;/code&gt;. Muchas distribuciones aplican backport de parches de seguridad a versiones antiguas de paquetes. La cadena de versión puede parecer vieja aunque el parche ya esté incorporado.&lt;/p&gt;
&lt;h2 id=&#34;comprobación-de-urgencia-en-un-minuto&#34;&gt;Comprobación de urgencia en un minuto
&lt;/h2&gt;&lt;p&gt;Usa estas preguntas para clasificar el riesgo rápidamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Este Nginx está expuesto directamente a internet, o forma parte de un API Gateway, proxy inverso, balanceador de carga o capa de entrada Ingress?&lt;/li&gt;
&lt;li&gt;¿Usas paquetes oficiales de Nginx, compilaciones desde código fuente, paneles de terceros o imágenes de contenedor sin haber confirmado el estado de corrección de &lt;code&gt;CVE-2026-42945&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿La configuración contiene reglas &lt;code&gt;rewrite&lt;/code&gt; complejas, especialmente &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt; consecutivos y capturas sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿Algún destino rewrite incluye rutas de solicitud, parámetros de consulta u otra entrada controlada por el usuario?&lt;/li&gt;
&lt;li&gt;¿El sistema está poco endurecido, por ejemplo con ASLR desactivado, workers con demasiados privilegios o permisos de contenedor demasiado amplios?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si se cumplen los dos primeros puntos y todavía no se revisó la configuración rewrite, trátalo como alta prioridad. Los puntos de entrada públicos, entornos compartidos, Kubernetes Ingress, proxies de borde y Nginx que transportan tráfico de login o API deben actualizarse o sustituirse primero por paquetes con corrección confirmada.&lt;/p&gt;
&lt;h2 id=&#34;cómo-confirmar-la-corrección-en-debian--ubuntu--rhel--alpine&#34;&gt;Cómo confirmar la corrección en Debian / Ubuntu / RHEL / Alpine
&lt;/h2&gt;&lt;p&gt;Los usuarios de distribuciones no deben mirar solo &lt;code&gt;nginx -v&lt;/code&gt;. Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux y Alpine suelen aplicar backport de parches de seguridad a ramas estables, así que la versión visible puede seguir siendo inferior a &lt;code&gt;1.30.1&lt;/code&gt; o &lt;code&gt;1.31.0&lt;/code&gt; de nginx.org.&lt;/p&gt;
&lt;p&gt;En Debian / Ubuntu, revisa advisories de seguridad, changelog del paquete y candidatos de actualización:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -V
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt list --upgradable &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En RHEL / AlmaLinux / Rocky Linux, revisa actualizaciones de seguridad y changelog del paquete:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yum updateinfo list security &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rpm -q --changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Alpine, revisa la versión instalada y las actualizaciones de la rama de seguridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apk info -v nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apk version -v nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el gestor de paquetes, el advisory de la distribución o el advisory del proveedor dice explícitamente que &lt;code&gt;CVE-2026-42945&lt;/code&gt; está corregido, puedes tratarlo como backport aplicado aunque el número de versión upstream parezca antiguo. A la inversa, si la versión parece alta pero el origen no está claro, confirma igualmente la fecha de compilación y el origen del parche.&lt;/p&gt;
&lt;h2 id=&#34;cómo-comprobar-imágenes-de-contenedor-e-ingress-controller&#34;&gt;Cómo comprobar imágenes de contenedor e Ingress Controller
&lt;/h2&gt;&lt;p&gt;En entornos de contenedores, revisa el Nginx dentro de la imagen, no solo el host. Primero confirma la versión realmente incluida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm your-nginx-image nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm your-nginx-image nginx -V
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También revisa si la imagen base fue actualizada. Si la imagen se construye sobre Debian, Ubuntu, Alpine o paquetes de distribución, el criterio vuelve a ser el advisory y el changelog de esa distribución. Reiniciar una imagen vieja no sirve; la imagen en sí debe reconstruirse o reemplazarse.&lt;/p&gt;
&lt;p&gt;En Kubernetes Ingress, confirma tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si el proyecto Ingress Controller publicó un advisory o una versión corregida para &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si el digest de la imagen del controller que corre en el clúster realmente cambió, no solo el tag.&lt;/li&gt;
&lt;li&gt;Si la versión de Nginx integrada, los parámetros de compilación y la configuración de plantillas del controller siguen conteniendo reglas rewrite de alto riesgo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puedes empezar revisando la imagen en ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx get pods -o wide
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx describe pod &amp;lt;pod-name&amp;gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas un Ingress o gateway administrado por un proveedor cloud, revisa también el advisory del servicio correspondiente. Los componentes administrados normalmente no se corrigen con un &lt;code&gt;apt upgrade&lt;/code&gt; ejecutado por el usuario; necesitas la corrección del proveedor o cambiar a una versión ya corregida.&lt;/p&gt;
&lt;h2 id=&#34;qué-patrones-rewrite-merecen-atención&#34;&gt;Qué patrones rewrite merecen atención
&lt;/h2&gt;&lt;p&gt;Esta vulnerabilidad está relacionada con la configuración &lt;code&gt;rewrite&lt;/code&gt;. Empieza buscando en la configuración de Nginx:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;rewrite&amp;#34;&lt;/span&gt; /etc/nginx -n
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\&lt;/span&gt;$&lt;span class=&#34;s2&#34;&gt;[0-9]&amp;#34;&lt;/span&gt; /etc/nginx -n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Presta atención a patrones como este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;rewrite&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;^/old/(.*)&lt;/span&gt;$ &lt;span class=&#34;s&#34;&gt;/new/&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$1?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;permanent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las capturas sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;, junto con el &lt;code&gt;?&lt;/code&gt; en el destino de reemplazo, forman parte de las condiciones clave descritas por las fuentes oficiales. Durante la revisión, presta especial atención a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;code&gt;rewrite&lt;/code&gt; seguido de otro &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Capturas amplias como &lt;code&gt;(.*)&lt;/code&gt; o &lt;code&gt;(.+)&lt;/code&gt; reutilizadas como &lt;code&gt;$1&lt;/code&gt; o &lt;code&gt;$2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Destinos rewrite que contienen &lt;code&gt;?&lt;/code&gt; para añadir o descartar parámetros de consulta.&lt;/li&gt;
&lt;li&gt;Entradas rewrite que provienen de rutas públicas, Host, URI, parámetros o valores controlados por upstream.&lt;/li&gt;
&lt;li&gt;Reglas rewrite generadas por paneles, gateways, anotaciones de Ingress o plantillas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si no puedes actualizar de inmediato, aplica mitigaciones temporales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reducir reglas rewrite complejas.&lt;/li&gt;
&lt;li&gt;Sustituir capturas sin nombre por capturas con nombre más claras.&lt;/li&gt;
&lt;li&gt;Evitar concatenar &lt;code&gt;?&lt;/code&gt; innecesarios en cadenas de reemplazo.&lt;/li&gt;
&lt;li&gt;Añadir reglas WAF o de proxy inverso para entradas de alto riesgo.&lt;/li&gt;
&lt;li&gt;Confirmar que ASLR está activado.&lt;/li&gt;
&lt;li&gt;Reducir privilegios de los workers de Nginx y verificar systemd sandbox, SELinux/AppArmor y otros endurecimientos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas medidas son mitigaciones, no sustituyen al parche.&lt;/p&gt;
&lt;h2 id=&#34;prioridad-de-remediación&#34;&gt;Prioridad de remediación
&lt;/h2&gt;&lt;p&gt;Prioriza por superficie expuesta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Puntos de entrada Nginx expuestos a internet.&lt;/li&gt;
&lt;li&gt;Proxies inversos, API Gateway y gateways de borde.&lt;/li&gt;
&lt;li&gt;Nginx en entornos multiinquilino.&lt;/li&gt;
&lt;li&gt;Kubernetes Ingress Controller.&lt;/li&gt;
&lt;li&gt;Plesk, paneles de control, imágenes de marketplace cloud y otros componentes que incluyen Nginx.&lt;/li&gt;
&lt;li&gt;Nginx internos que transportan tráfico crítico de negocio.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cómo-verificar-después-de-actualizar-nginx--t-reload-y-estado-de-workers&#34;&gt;Cómo verificar después de actualizar: nginx -t, reload y estado de workers
&lt;/h2&gt;&lt;p&gt;Después de actualizar, no te quedes solo con el mensaje de éxito del gestor de paquetes. Confirma que la configuración, los procesos y el binario real ya cambiaron. Primero valida la configuración:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -t
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no hay errores, recarga de forma suave:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl reload nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la actualización del paquete sustituyó el binario, confirma que los workers antiguos salieron:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ps aux &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes revisar la hora de inicio del proceso master y la ruta del binario para asegurarte de que el servicio en ejecución no sea un proceso antiguo que sigue residente. Si hace falta, programa una ventana de mantenimiento y reinicia el servicio para evitar que workers o contenedores antiguos sigan procesando solicitudes.&lt;/p&gt;
&lt;p&gt;En contenedores e Ingress, confirma también que el rollout de la nueva imagen se completó de verdad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx rollout status deployment/&amp;lt;deployment-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx get pods -o wide
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La verificación clave no es &amp;ldquo;el comando se ejecutó&amp;rdquo;, sino &amp;ldquo;el tráfico en producción ya lo atienden procesos Nginx que incluyen la corrección&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;no-ignores-el-mismo-lote-de-correcciones-de-nginx&#34;&gt;No ignores el mismo lote de correcciones de Nginx
&lt;/h2&gt;&lt;p&gt;Las versiones &lt;code&gt;1.30.1&lt;/code&gt; y &lt;code&gt;1.31.0&lt;/code&gt; publicadas por nginx.org el mismo día no solo corrigen &lt;code&gt;CVE-2026-42945&lt;/code&gt;. La información de publicación también menciona HTTP/2 request injection, SCGI/uWSGI buffer overread, charset module buffer overread, HTTP/3 address spoofing, OCSP resolver use-after-free y otros problemas.&lt;/p&gt;
&lt;p&gt;Eso significa que un entorno de producción no debería limitarse a una regla temporal para un solo CVE. Conviene tratar esta ronda de seguridad de Nginx como una actualización completa.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El punto clave de &lt;code&gt;CVE-2026-42945&lt;/code&gt; no es &amp;ldquo;todos los Nginx pueden tomarse al instante&amp;rdquo;. Es una vulnerabilidad de seguridad de memoria presente durante mucho tiempo en el módulo rewrite, que puede activarse mediante solicitudes no autenticadas bajo configuraciones concretas. El resultado directo más claro es el fallo y reinicio de workers; en entornos más débiles, como sistemas con ASLR desactivado, el riesgo de ejecución de código aumenta.&lt;/p&gt;
&lt;p&gt;Para equipos de operaciones, el orden de actuación es simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirmar el origen y la versión de Nginx.&lt;/li&gt;
&lt;li&gt;Revisar advisories de la distribución, F5, nginx.org o proveedor cloud.&lt;/li&gt;
&lt;li&gt;Actualizar cuanto antes a una versión corregida o a un paquete de seguridad de la distribución.&lt;/li&gt;
&lt;li&gt;Revisar configuraciones rewrite complejas, especialmente combinaciones de &lt;code&gt;$1&lt;/code&gt;, &lt;code&gt;$2&lt;/code&gt; y &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirmar ASLR, aislamiento de privilegios y estado de recarga del servicio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El titular puede asustar. La corrección debe ser tranquila: confirmar exposición, actualizar y después limpiar reglas rewrite de alto riesgo.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-42945&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-42945&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nginx.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Información de publicación de nginx.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://my.f5.com/manage/s/article/K000161019&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;F5 Security Advisory K000161019&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://depthfirst.com/nginx-rift&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DepthFirst: Nginx Rift&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Dirty Frag, Copy Fail y Fragnesia: comparación de tres fallos recientes de escalada local en Linux</title>
        <link>https://www.knightli.com/es/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</link>
        <pubDate>Fri, 15 May 2026 13:24:04 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</guid>
        <description>&lt;p&gt;En las últimas semanas han aparecido varias vulnerabilidades de escalada local de privilegios en el kernel de Linux: Dirty Frag, Copy Fail y Fragnesia. Parecen parte de una misma familia porque el resultado final es parecido: un usuario local con pocos privilegios podría convertirse en root.&lt;/p&gt;
&lt;p&gt;Pero desde el punto de vista operativo no conviene tratarlas como una sola vulnerabilidad. Sus módulos de entrada, rutas de activación, mitigaciones y ritmos de parcheo son distintos. Una lectura más precisa es que exponen un riesgo común en la frontera compleja entre la caché de páginas de Linux, &lt;code&gt;splice&lt;/code&gt;, socket buffers y rutas criptográficas.&lt;/p&gt;
&lt;p&gt;Este artículo solo analiza riesgos y respuesta. No incluye pasos reproducibles de explotación.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-cada-vulnerabilidad&#34;&gt;Qué Es Cada Vulnerabilidad
&lt;/h2&gt;&lt;h3 id=&#34;dirty-frag-cve-2026-43284&#34;&gt;Dirty Frag: CVE-2026-43284
&lt;/h3&gt;&lt;p&gt;Dirty Frag apunta principalmente a un problema de escritura en la caché de páginas dentro de la ruta de red del kernel de Linux. En los análisis públicos suele aparecer junto con dos problemas: el lado &lt;code&gt;xfrm-ESP&lt;/code&gt;, CVE-2026-43284, y el lado &lt;code&gt;rxrpc&lt;/code&gt;, CVE-2026-43500.&lt;/p&gt;
&lt;p&gt;CVE-2026-43284 está relacionado con el descifrado in-place cuando ESP maneja fragmentos &lt;code&gt;skb&lt;/code&gt; compartidos. La clave no es que el atacante modifique directamente un archivo en disco, sino que el kernel escribe en páginas compartidas que no debería modificar y termina afectando el contenido del archivo en la caché de páginas.&lt;/p&gt;
&lt;p&gt;Desde operaciones, lo importante es recordar que Dirty Frag toca &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;, un conjunto de módulos del kernel y rutas del subsistema de red. Está ligado a IPsec, ESP y RxRPC, por lo que la mitigación temporal también gira alrededor de esos módulos.&lt;/p&gt;
&lt;h3 id=&#34;copy-fail-cve-2026-31431&#34;&gt;Copy Fail: CVE-2026-31431
&lt;/h3&gt;&lt;p&gt;Copy Fail es una vulnerabilidad de escalada local de privilegios en el kernel de Linux divulgada por Theori / Xint Code. Su entrada no está en la ruta de red de IPsec, sino en la API criptográfica de espacio de usuario del kernel alrededor de &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Las explicaciones públicas la atribuyen a una optimización in-place introducida en 2017. En algunos casos, el kernel no copiaba datos como se esperaba y colocaba páginas de la caché en una ruta de destino escribible. Un atacante puede combinar &lt;code&gt;AF_ALG&lt;/code&gt; con &lt;code&gt;splice()&lt;/code&gt; para realizar una pequeña escritura controlada sobre páginas respaldadas por la caché.&lt;/p&gt;
&lt;p&gt;Su riesgo está en la alta explotabilidad y en el impacto sobre varias distribuciones principales. A diferencia de Dirty Frag, la mitigación temporal de Copy Fail se centra en restringir o desactivar &lt;code&gt;algif_aead&lt;/code&gt;, y en limitar la creación de sockets &lt;code&gt;AF_ALG&lt;/code&gt; en entornos de contenedores y CI.&lt;/p&gt;
&lt;h3 id=&#34;fragnesia-cve-2026-46300&#34;&gt;Fragnesia: CVE-2026-46300
&lt;/h3&gt;&lt;p&gt;Fragnesia es otra vulnerabilidad de escalada local de privilegios en el kernel de Linux divulgada por V12 Security, dentro de una superficie de ataque parecida a Dirty Frag. No es el mismo bug que Dirty Frag, pero sigue girando alrededor de módulos relacionados con IPsec ESP / &lt;code&gt;rxrpc&lt;/code&gt; y efectos de escritura en la caché de páginas.&lt;/p&gt;
&lt;p&gt;AlmaLinux la describe como el tercer problema de local-root en la misma zona amplia del código. El punto clave es que &lt;code&gt;skb_try_coalesce()&lt;/code&gt; no conservaba correctamente el marcador de fragment compartido al combinar fragmentos de socket buffer, lo que podía permitir que la ruta de recepción XFRM ESP-in-TCP descifrara in-place sobre páginas externas de la caché.&lt;/p&gt;
&lt;p&gt;En resumen, Fragnesia está más cerca de Dirty Frag. Ambas giran alrededor de &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, fragmentos &lt;code&gt;skb&lt;/code&gt; y rutas de descifrado ESP. Sus mitigaciones temporales también se solapan bastante.&lt;/p&gt;
&lt;h2 id=&#34;similitudes-por-qué-son-peligrosas&#34;&gt;Similitudes: Por Qué Son Peligrosas
&lt;/h2&gt;&lt;p&gt;El punto común no es que el código exacto esté en el mismo lugar, sino que el resultado del ataque y el modelo de riesgo son muy parecidos.&lt;/p&gt;
&lt;p&gt;Primero, las tres son escaladas locales de privilegios. Normalmente el atacante necesita primero ejecutar código local como usuario normal y luego intentar convertirse en root. En un escritorio de un solo usuario no es una intrusión remota de un clic; en servidores multiusuario, CI runners, hosts de contenedores, máquinas de desarrollo compartidas y VPS con SSH expuesto, las entradas de bajo privilegio no son raras.&lt;/p&gt;
&lt;p&gt;Segundo, las tres se relacionan con escrituras en la caché de páginas. El atacante no siempre modifica de forma permanente el archivo en disco; puede afectar la copia en memoria. Esto reduce la fiabilidad de las revisiones tradicionales de integridad: el hash del disco puede parecer normal mientras la ruta de ejecución lee contenido contaminado desde la caché.&lt;/p&gt;
&lt;p&gt;Tercero, se parecen más a bugs lógicos deterministas que a condiciones de carrera sensibles al tiempo. Los materiales públicos insisten en que no requieren ganar una race condition. Los defensores no deberían subestimar la fiabilidad de explotación por experiencia con fallos más antiguos.&lt;/p&gt;
&lt;p&gt;Cuarto, amplifican el riesgo en entornos de contenedores y automatización. Código de bajo privilegio dentro de contenedores, jobs de CI, scripts de compilación o plugins de terceros puede convertir un &amp;ldquo;problema local&amp;rdquo; en un problema de plataforma si alcanza las interfaces relevantes del kernel del host.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-una-mitigación-no-cubre-todo&#34;&gt;Diferencias: Una Mitigación No Cubre Todo
&lt;/h2&gt;&lt;p&gt;La mayor diferencia está en el módulo de entrada.&lt;/p&gt;
&lt;p&gt;La entrada crítica de Copy Fail es &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;, parte de la API criptográfica de espacio de usuario del kernel. Su defensa temporal se centra en desactivar o restringir &lt;code&gt;algif_aead&lt;/code&gt;, y usar seccomp para impedir que los contenedores creen sockets &lt;code&gt;AF_ALG&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La entrada crítica de Dirty Frag está en &lt;code&gt;xfrm-ESP&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Está más cerca de las rutas de protocolo y manejo de socket buffers. La defensa temporal suele considerar desactivar &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;, pero eso puede afectar IPsec, VPN, túneles o capacidades de red relacionadas.&lt;/p&gt;
&lt;p&gt;Fragnesia también está en una zona cercana a Dirty Frag, pero el problema concreto es que &lt;code&gt;skb_try_coalesce()&lt;/code&gt; no conservaba el marcador de fragment compartido. Es más bien otra rama de la superficie de riesgo de Dirty Frag, no un problema de la API criptográfica de Copy Fail.&lt;/p&gt;
&lt;p&gt;Por eso, haber tratado Copy Fail no significa que Dirty Frag y Fragnesia estén cubiertas. Del mismo modo, desactivar &lt;code&gt;esp4&lt;/code&gt; / &lt;code&gt;esp6&lt;/code&gt; no elimina automáticamente Copy Fail. Hay que confirmar por separado el estado de parches y la estrategia de mitigación.&lt;/p&gt;
&lt;h2 id=&#34;cómo-evaluar-la-exposición&#34;&gt;Cómo Evaluar la Exposición
&lt;/h2&gt;&lt;p&gt;Para estas vulnerabilidades no basta con mirar el nombre de la distribución ni la versión mayor del kernel. Las distribuciones hacen backport de correcciones, los proveedores cloud mantienen ramas propias del kernel y las distribuciones empresariales pueden llevar parches adicionales.&lt;/p&gt;
&lt;p&gt;Un orden más seguro es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar el aviso de seguridad de la distribución y el changelog del paquete del kernel.&lt;/li&gt;
&lt;li&gt;Confirmar si el paquete de kernel actual corrige el CVE correspondiente.&lt;/li&gt;
&lt;li&gt;En servidores cloud, hosts de contenedores y nodos de CI, revisar también avisos del proveedor o de la plataforma.&lt;/li&gt;
&lt;li&gt;Para mitigaciones temporales, confirmar si el negocio depende del módulo afectado.&lt;/li&gt;
&lt;li&gt;Después de actualizar el kernel, programar reinicio y comprobar que el kernel en ejecución cambió.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La trampa más común es &amp;ldquo;el paquete está actualizado, pero la máquina no se reinició&amp;rdquo;. Las vulnerabilidades del kernel no son como actualizaciones de servicios de espacio de usuario. Hasta arrancar con el nuevo kernel, el kernel viejo puede seguir ejecutándose.&lt;/p&gt;
&lt;h2 id=&#34;prioridad-operativa&#34;&gt;Prioridad Operativa
&lt;/h2&gt;&lt;p&gt;Los sistemas más urgentes no son todas las máquinas Linux por igual. Hay que empezar donde es más probable que exista ejecución de código con pocos privilegios.&lt;/p&gt;
&lt;p&gt;Entornos de prioridad alta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servidores de login multiusuario&lt;/li&gt;
&lt;li&gt;CI / CD runners&lt;/li&gt;
&lt;li&gt;Máquinas de compilación y empaquetado de artefactos&lt;/li&gt;
&lt;li&gt;Hosts de contenedores y nodos Kubernetes&lt;/li&gt;
&lt;li&gt;Máquinas de desarrollo compartidas&lt;/li&gt;
&lt;li&gt;Servidores cloud y VPS con SSH expuesto&lt;/li&gt;
&lt;li&gt;Plataformas que ejecutan scripts, plugins o colas de tareas de terceros&lt;/li&gt;
&lt;li&gt;Máquinas con vulnerabilidades web, contraseñas débiles o señales históricas de compromiso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las máquinas cerradas, de un solo usuario y sin entrada externa de ejecución de código siguen teniendo riesgo si son vulnerables, pero normalmente pueden ir después.&lt;/p&gt;
&lt;h2 id=&#34;cómo-entender-la-mitigación-temporal&#34;&gt;Cómo Entender la Mitigación Temporal
&lt;/h2&gt;&lt;p&gt;La mitigación temporal no reemplaza al parche. Su valor es reducir la exposición cuando no se puede reiniciar de inmediato o mientras se esperan paquetes de la distribución.&lt;/p&gt;
&lt;p&gt;Para Copy Fail, el foco está en &lt;code&gt;algif_aead&lt;/code&gt; y &lt;code&gt;AF_ALG&lt;/code&gt;. Si el negocio no usa la interfaz criptográfica AF_ALG del kernel, se puede evaluar desactivar el módulo relacionado. En contenedores, conviene revisar primero las políticas seccomp para que cargas no confiables no puedan crear libremente el socket correspondiente.&lt;/p&gt;
&lt;p&gt;Para Dirty Frag y Fragnesia, el foco está en &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Si el sistema no depende de IPsec ESP, VPN relacionadas, túneles o RxRPC, se puede evaluar una desactivación temporal. No debe hacerse a ciegas en producción porque esos módulos pueden sostener cargas de red reales.&lt;/p&gt;
&lt;p&gt;El camino final sigue siendo actualizar el kernel. La mitigación temporal reduce superficie de ataque, pero no demuestra que el sistema sea completamente seguro.&lt;/p&gt;
&lt;h2 id=&#34;qué-nos-dicen-estos-tres-fallos&#34;&gt;Qué Nos Dicen Estos Tres Fallos
&lt;/h2&gt;&lt;p&gt;La advertencia importante no es solo el número de CVE. Estos fallos se concentran en rutas del kernel muy complejas: zero-copy, &lt;code&gt;splice&lt;/code&gt;, socket buffers, caché de páginas, interfaces criptográficas y optimizaciones de pila de protocolos.&lt;/p&gt;
&lt;p&gt;Estas rutas dan grandes beneficios de rendimiento, pero también vuelven más difícil mantener los límites de propiedad. Si un fragment está compartido, si una página puede escribirse in-place o si una optimización realmente solo reduce copias se convierte en parte del límite de seguridad.&lt;/p&gt;
&lt;p&gt;Para equipos de seguridad y operaciones, las conclusiones son prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tratar la escalada local de privilegios como un amplificador de entradas ya existentes de bajo privilegio.&lt;/li&gt;
&lt;li&gt;Los contenedores no son una frontera natural de aislamiento frente a vulnerabilidades del kernel.&lt;/li&gt;
&lt;li&gt;Las revisiones de integridad no pueden mirar solo el contenido del disco.&lt;/li&gt;
&lt;li&gt;CI, máquinas de compilación y plataformas de plugins deben ser activos de alta prioridad.&lt;/li&gt;
&lt;li&gt;En parches de kernel hay que verificar tanto &amp;ldquo;instalado&amp;rdquo; como &amp;ldquo;en ejecución&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Dirty Frag, Copy Fail y Fragnesia son eventos recientes de alta prioridad en la escalada local de privilegios de Linux, pero no son tres nombres del mismo fallo.&lt;/p&gt;
&lt;p&gt;Copy Fail pasa por la ruta criptográfica &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;. Dirty Frag pasa por &lt;code&gt;xfrm-ESP&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Fragnesia, en una superficie cercana a Dirty Frag, vuelve a disparar riesgo de escritura en la caché de páginas por el manejo de marcadores de fragmentos &lt;code&gt;skb&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La respuesta más sólida es actualizar el kernel según los avisos de la distribución y reiniciar. En sistemas que no puedan actualizarse de inmediato, evaluar la desactivación temporal de módulos o reglas seccomp más estrictas según la entrada real de cada vulnerabilidad. Priorizar entornos multi-tenant, CI, hosts de contenedores y desarrollo compartido.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de Theori sobre Copy Fail: &lt;a class=&#34;link&#34; href=&#34;https://github.com/theori-io/copy-fail-CVE-2026-31431&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/theori-io/copy-fail-CVE-2026-31431&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Aviso de CERT-EU sobre Copy Fail: &lt;a class=&#34;link&#34; href=&#34;https://cert.europa.eu/publications/security-advisories/2026-005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cert.europa.eu/publications/security-advisories/2026-005/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas de AlmaLinux sobre Dirty Frag: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-07-dirty-frag/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-07-dirty-frag/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas de AlmaLinux sobre Fragnesia: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas del PoC de V12 Security sobre Fragnesia: &lt;a class=&#34;link&#34; href=&#34;https://github.com/v12-security/pocs/tree/main/fragnesia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/v12-security/pocs/tree/main/fragnesia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Fragnesia (CVE-2026-46300): impacto y mitigación de una escalada local de privilegios en el kernel de Linux</title>
        <link>https://www.knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/</link>
        <pubDate>Fri, 15 May 2026 13:18:01 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/</guid>
        <description>&lt;p&gt;El kernel de Linux acaba de sumar otra vulnerabilidad de escalada local de privilegios en una superficie de ataque cercana a Dirty Frag: Fragnesia (CVE-2026-46300).&lt;/p&gt;
&lt;p&gt;Según la divulgación de V12 Security, Fragnesia es una vulnerabilidad local de Linux. El atacante no necesita privilegios elevados previos en el host. Si puede ejecutar código local, podría aprovechar un fallo lógico en el subsistema XFRM ESP-in-TCP del kernel para modificar, byte a byte, contenido de archivos de solo lectura a través de la caché de páginas y terminar obteniendo un root shell.&lt;/p&gt;
&lt;p&gt;Fuente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas del PoC de V12 Security: &lt;a class=&#34;link&#34; href=&#34;https://github.com/v12-security/pocs/blob/main/fragnesia/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/v12-security/pocs/blob/main/fragnesia/README.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo no cubre pasos reproducibles de explotación. Se centra en los riesgos y la respuesta operativa.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-dirty-frag&#34;&gt;Relación con Dirty Frag
&lt;/h2&gt;&lt;p&gt;V12 Security clasifica Fragnesia dentro de la familia de vulnerabilidades Dirty Frag. No es el mismo bug que Dirty Frag, sino otro problema en una superficie de ataque relacionada: XFRM ESP-in-TCP en el kernel de Linux.&lt;/p&gt;
&lt;p&gt;XFRM es el marco del kernel de Linux para procesar IPsec. ESP-in-TCP está relacionado con transportar tráfico ESP cifrado sobre TCP. El problema de Fragnesia está en la lógica de fragmentos de página compartidos y la combinación de socket buffers: en ciertas condiciones, el kernel puede perder la pista de que un fragment sigue compartido y dejar una zona de escritura controlable.&lt;/p&gt;
&lt;p&gt;Este tipo de fallo recuerda a Dirty Pipe / Dirty Frag y otros problemas de escritura en la caché de páginas. El código concreto no es el mismo, pero el efecto vuelve a caer sobre la copia en caché de un archivo de solo lectura.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-grave&#34;&gt;Por Qué Es Grave
&lt;/h2&gt;&lt;p&gt;Fragnesia es peligrosa por tres razones.&lt;/p&gt;
&lt;p&gt;Primero, es una escalada local de privilegios. Si un atacante ya puede ejecutar código como usuario normal, podría elevarse a root. Esto es especialmente sensible en servidores multiusuario, hosts de contenedores, CI runners, máquinas de desarrollo compartidas, VPS y entornos que exponen acceso shell.&lt;/p&gt;
&lt;p&gt;Segundo, no depende de una condición de carrera tradicional. Las notas de V12 describen una ruta que fuerza el procesamiento ESP-in-TCP sobre páginas de archivo ya incorporadas a un socket buffer mediante &lt;code&gt;splice&lt;/code&gt;, lo que permite influir byte a byte en el contenido de la caché de páginas. Eso hace que el riesgo sea práctico, no solo teórico.&lt;/p&gt;
&lt;p&gt;Tercero, modifica la caché de páginas, no el archivo en disco. El ejemplo público usa &lt;code&gt;/usr/bin/su&lt;/code&gt; como objetivo. Tras una explotación correcta, el archivo en disco no queda modificado de forma permanente; el cambio vive en la memoria. Las revisiones que solo comparan hashes o integridad del disco pueden no ver nada extraño.&lt;/p&gt;
&lt;p&gt;Ese es el punto incómodo para los administradores: el archivo parece intacto, pero al ejecutar la copia contaminada desde la caché de páginas puede activarse la escalada.&lt;/p&gt;
&lt;h2 id=&#34;alcance-conocido&#34;&gt;Alcance Conocido
&lt;/h2&gt;&lt;p&gt;V12 Security indica que los kernels afectados por Dirty Frag y sin los parches relevantes del 13 de mayo de 2026 también están afectados por Fragnesia. Los entornos verificados públicamente incluyen Ubuntu 22.04, Ubuntu 24.04 y kernels como &lt;code&gt;6.8.0-111-generic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hay dos matices importantes.&lt;/p&gt;
&lt;p&gt;Primero, no basta con mirar la versión mayor de la distribución. Que Ubuntu 22.04 / 24.04 esté afectado depende del estado real de parches del kernel, no solo del nombre de la distribución.&lt;/p&gt;
&lt;p&gt;Segundo, no conviene confiar únicamente en las restricciones predeterminadas de AppArmor para namespaces de usuario sin privilegios. En Ubuntu pueden elevar la barrera, pero la divulgación las trata como un problema adicional de bypass, no como una corrección del fallo.&lt;/p&gt;
&lt;p&gt;La forma fiable de decidir sigue siendo revisar los avisos de seguridad de la distribución y las actualizaciones del paquete del kernel.&lt;/p&gt;
&lt;h2 id=&#34;mitigación-temporal&#34;&gt;Mitigación Temporal
&lt;/h2&gt;&lt;p&gt;Si un sistema no puede actualizar el kernel de inmediato, primero hay que evaluar si depende de los módulos de protocolo relacionados.&lt;/p&gt;
&lt;p&gt;La mitigación indicada por V12 es la misma que para Dirty Frag: si el sistema no depende de IPsec ESP ni de RxRPC, se puede evaluar desactivar módulos como &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Esto puede afectar capacidades de red, así que no debe aplicarse a ciegas en producción. Antes hay que confirmar si el negocio usa IPsec, VPN, túneles o funciones relacionadas del kernel.&lt;/p&gt;
&lt;p&gt;Un orden de respuesta más seguro es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirmar si la distribución ya publicó una actualización de seguridad del kernel.&lt;/li&gt;
&lt;li&gt;Instalar primero el parche del kernel y programar el reinicio.&lt;/li&gt;
&lt;li&gt;Si no se puede actualizar de inmediato, evaluar la desactivación temporal de módulos.&lt;/li&gt;
&lt;li&gt;Priorizar sistemas multiusuario y entornos de CI / compilación.&lt;/li&gt;
&lt;li&gt;Revisar cuentas locales innecesarias, shell, superficie de escape de contenedores y entradas de ejecución de bajo privilegio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No hay que tratar la desactivación de módulos como corrección final. Es una reducción temporal de exposición.&lt;/p&gt;
&lt;h2 id=&#34;si-se-sospecha-explotación&#34;&gt;Si Se Sospecha Explotación
&lt;/h2&gt;&lt;p&gt;Una característica de Fragnesia es la contaminación de la caché de páginas. V12 señala que, tras la explotación, la copia del archivo objetivo en la caché puede contener contenido inyectado, y ejecuciones posteriores pueden seguir comportándose de forma anómala hasta que la página sea expulsada o el sistema se reinicie.&lt;/p&gt;
&lt;p&gt;Si se sospecha que el sistema fue explotado, conviene al menos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preservar logs y registros de auditoría cuanto antes.&lt;/li&gt;
&lt;li&gt;Revisar inicios de sesión locales anómalos, actividad de usuarios de bajo privilegio, procesos sospechosos y rastros de root shell.&lt;/li&gt;
&lt;li&gt;Limpiar la caché de páginas relevante o reiniciar directamente.&lt;/li&gt;
&lt;li&gt;Actualizar a un kernel corregido.&lt;/li&gt;
&lt;li&gt;Verificar binarios críticos, pero sin depender solo de hashes del disco.&lt;/li&gt;
&lt;li&gt;Rotar credenciales y claves potencialmente expuestas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En servidores de producción, es mejor tratarlo como un posible incidente de escalada local de privilegios, no solo como una actualización rutinaria.&lt;/p&gt;
&lt;h2 id=&#34;qué-máquinas-priorizar&#34;&gt;Qué Máquinas Priorizar
&lt;/h2&gt;&lt;p&gt;La prioridad no debe repartirse por igual entre todas las máquinas Linux. Hay que empezar por los lugares donde un atacante tiene más probabilidades de obtener ejecución de código con pocos privilegios.&lt;/p&gt;
&lt;p&gt;Entornos de mayor prioridad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servidores de login multiusuario&lt;/li&gt;
&lt;li&gt;CI / CD runners&lt;/li&gt;
&lt;li&gt;Máquinas de compilación&lt;/li&gt;
&lt;li&gt;Máquinas de desarrollo compartidas&lt;/li&gt;
&lt;li&gt;Hosts de contenedores&lt;/li&gt;
&lt;li&gt;VPS y servidores cloud&lt;/li&gt;
&lt;li&gt;Nodos de borde con SSH expuesto&lt;/li&gt;
&lt;li&gt;Plataformas que ejecutan scripts o plugins de terceros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las máquinas cerradas, de un solo usuario y sin entrada externa de ejecución de código siguen teniendo riesgo si son vulnerables, pero la urgencia puede ser menor.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Fragnesia merece atención no por tener un nombre nuevo, sino porque vuelve a llevar la escalada local de privilegios en Linux a una frontera compleja: la caché de páginas y los subsistemas de red del kernel.&lt;/p&gt;
&lt;p&gt;Para administradores, lo importante no es estudiar los detalles de explotación, sino confirmar el estado de parches del kernel, evaluar si se depende de ESP / RxRPC, actualizar primero las máquinas más expuestas y entender que &amp;ldquo;el archivo en disco no cambió&amp;rdquo; no significa &amp;ldquo;el sistema no fue afectado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si el sistema está afectado, la respuesta final sigue siendo instalar cuanto antes la actualización del kernel ofrecida por la distribución. Desactivar módulos temporalmente es solo una medida puente, no un reemplazo del parche.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
