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=y con espacios de nombres de usuario sin privilegios permitidos (por ejemplo, kernel.unprivileged_userns_clone = 1 en algunas distribuciones),
    • Para 6.4–6.6, CONFIG_INIT_ON_ALLOC_DEFAULT_ON debe ser n o el exploit falla.
  • Se informa que una opción de endurecimiento CONFIG_INIT_ON_FREE_DEFAULT_ON rompe 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.