Páginas en movimiento: nueva vulnerabilidad de Linux en nf_tables y técnicas de explotación
Naturaleza de la vulnerabilidad y del exploit
- La discusión se centra en una escalada local de privilegios en Linux netfilter/nf_tables (CVE-2024-1086) mediante un error de use-after-free/double-free.
- El exploit permite escalar de un usuario sin privilegios a root y puede leer/escribir memoria física arbitraria; el PoC publicado lo usa principalmente para obtener root.
- El exploit también incluye un primitivo de escape de namespace, lo que potencialmente permite salir de algunas configuraciones de contenedor/sandbox.
Kernels, configuraciones y mitigaciones afectadas
- Versiones de kernel vulnerables: aprox. 5.14 a 6.6, excluyendo subversiones parcheadas específicas (5.15.149+, 6.1.76+, 6.6.15+).
- El exploit requiere:
CONFIG_NF_TABLES=y(nf_tables habilitado),CONFIG_USER_NS=ycon espacios de nombres de usuario sin privilegios permitidos (por ejemplo,kernel.unprivileged_userns_clone = 1en algunas distribuciones),- Para 6.4–6.6,
CONFIG_INIT_ON_ALLOC_DEFAULT_ONdebe serno el exploit falla.
- Se informa que una opción de endurecimiento
CONFIG_INIT_ON_FREE_DEFAULT_ONrompe el exploit, pero la mayoría de las distribuciones no la activan por motivos de rendimiento (poner a cero al liberar).
Contenedores, namespaces y sandboxing
- El exploit depende de root dentro de un namespace para interactuar con nf_tables.
- Se sugiere que LXC y contenedores Docker privilegiados podrían ser explotables; los contenedores Docker sin privilegios probablemente no, porque en general no pueden crear namespaces de usuario.
- Algunos señalan que los sandboxes de navegador y aplicaciones (Chrome, Electron, Flatpak/Bubblewrap) dependen de namespaces de usuario o de helpers suid, destacando una tensión entre el sandboxing y la superficie de ataque del kernel.
Impacto en distribuciones y parcheado
- Debian y Ubuntu se confirman afectadas al ejecutar kernels vulnerables con namespaces sin privilegios habilitados; los parches se enviaron semanas antes del PoC.
- El aviso de seguridad de Ubuntu enumera versiones de kernel corregidas para lanzamientos LTS (por ejemplo, Focal 5.4.0-174, Jammy 5.15.0-101, Mantic 6.5.0-26).
- Algunos advierten que los usuarios pueden haber retrasado actualizaciones del kernel debido a regresiones no relacionadas (por ejemplo, problemas con Nvidia).
Fiabilidad del exploit e informes de usuarios
- Varios usuarios informan que el PoC falla correctamente en sistemas parcheados o endurecidos; otros reportan congelamientos o bloqueos del sistema en kernels vulnerables, VMs y WSL.
- Se reportan mensajes de error como “failed to detect overwritten pte… is more PTE spray needed?” y se señala que son esperables en ciertos kernels de Ubuntu donde las mitigaciones bloquean el exploit.
Debates más amplios: modelo de seguridad, ética y dificultad
- Hay un fuerte debate sobre habilitar namespaces de usuario sin privilegios por defecto: valiosos para sandboxing frente a exponer repetidamente API del kernel solo accesibles por root a código no confiable.
- Algunos argumentan que los escritorios de un solo usuario se benefician más de los sandboxes que de una separación estricta entre usuario y root; otros subrayan que la separación con root sigue importando (por ejemplo, compromiso del firmware).
- La discusión ética contrapone la divulgación pública y las recompensas de CTF con la venta a corredores de exploits ofensivos; algunos elogian la divulgación orientada a la comunidad.
- Los comentaristas discuten cómo las mitigaciones modernas (ASLR, canaries, KASLR) hacen que la explotación sea más difícil pero no imposible, especialmente para equipos bien financiados o muy capacitados.