
Exploit de prueba de concepto para la fuga de información FUSE del kernel de Linux (CVE-2024-44947), demostrando divulgación de memoria más allá de EOF mediante mmap e incluyendo análisis de volcado de memoria.
Descripción: En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fuse: Inicializar el contenido de páginas más allá del EOF antes de marcar como uptodate fuse_notify_store(), a diferencia de fuse_do_readpage(), no habilita el llenado de páginas con ceros (porque puede usarse para cambiar contenido parcial de la página). Por lo tanto, fuse_notify_store() debe ser más cuidadoso en inicializar completamente el contenido de la página (incluyendo partes de la página que están más allá del final del archivo) antes de marcarla como uptodate. El código actual puede dejar sin inicializar el contenido de la página más allá del EOF, lo que hace que este contenido no inicializado sea visible para el espacio de usuario a través de mmap(). Esto es una fuga de información, pero solo afecta a sistemas que no tienen habilitada la inicialización en asignación (a través de CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y o el parámetro de línea de comandos del kernel correspondiente).
Mayor Volcado de Memoria: El tamaño del volcado de memoria se ha duplicado a 8 páginas, proporcionando una vista más extensa de posibles fugas.
Motor de Heurísticas: Se introdujo un motor de heurísticas simple que escanea la memoria volcada en busca de patrones específicos, como cabeceras "HTTP", cabeceras "ELF" y otras estructuras de datos conocidas. Esto ayuda a identificar y categorizar los datos filtrados de manera más efectiva.
Operaciones FUSE Mejoradas: Se añadió una operación FUSE más compleja con un payload más grande para aumentar las posibilidades de desencadenar la vulnerabilidad bajo diversas condiciones.
Aleatorización y Elementos Dinámicos: El PoC incluye aleatorización en ciertas operaciones para simular diferentes escenarios y potencialmente desencadenar resultados variados, haciendo el exploit más robusto.
Análisis Detallado de Memoria: El PoC ahora realiza un análisis detallado del volcado de memoria, imprimiendo valores hexadecimales e identificando posibles fugas de datos mediante coincidencia heurística.
gcc -o fuse_poc_advanced fuse_poc_advanced.c
sudo ./fuse_poc_advanced
Este PoC mejorado está diseñado para usuarios avanzados e investigadores, proporcionando un marco más completo para investigar y explotar la vulnerabilidad de FUSE. Incluye elementos dinámicos, manejo sofisticado de memoria y análisis heurístico, lo que lo hace adecuado para análisis detallados de vulnerabilidades y escenarios de explotación.