
Investigación y prueba de concepto para CVE-2022-0185, vulnerabilidad de desbordamiento de heap del kernel de Linux.
Investigación y prueba de concepto para la vulnerabilidad de desbordamiento de montón del kernel Linux CVE-2022-0185.
CVE-2022-0185 – Análisis de Desbordamiento de Montón del Kernel Linux Resumen
CVE-2022-0185 es una vulnerabilidad de desbordamiento de búfer basada en montón en la implementación del contexto del sistema de archivos del kernel Linux. El problema existe en la función legacy_parse_param() y puede permitir la escalada de privilegios locales bajo ciertas configuraciones.
CVE ID: CVE-2022-0185
Componente: Contexto del sistema de archivos del kernel Linux
Tipo de vulnerabilidad: Desbordamiento de búfer de montón
Vector de ataque: Local
Impacto: Escalada de privilegios
Autor: Sandesh Pantha Tipo de proyecto: Investigación de seguridad y demostración educativa
Referencias oficiales:
Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2022-0185
Advertencia Openwall: https://www.openwall.com/lists/oss-security/2022/01/18/7
Commit de corrección del kernel Linux: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=722d94847de29310e8aa03fcbdb41fc92c521756
Causa Raíz de la Vulnerabilidad
La vulnerabilidad es causada por una verificación de límites incorrecta al analizar los parámetros del sistema de archivos mediante la llamada al sistema fsconfig().
En legacy_parse_param():
Los datos controlados por el usuario se agregan a un búfer interno
El cálculo de tamaño no previene adecuadamente el desbordamiento
Las llamadas repetidas pueden causar corrupción de la memoria del montón
Esto resulta en una escritura fuera de los límites en objetos de montón adyacentes, lo que potencialmente puede llevar a:
Corrupción de la memoria del kernel
Divulgación de información
Condiciones de use-after-free
Escalada de privilegios
Las versiones afectadas incluyen kernels Linux anteriores a:
5.11.0
5.16.2
5.15.16
5.10.93
Enfoque de la Investigación
Este proyecto demuestra:
Creación de contexto del sistema de archivos mediante fsopen()
Inyección de parámetros a través de fsconfig()
Técnicas de rociado de montón del kernel
Acicalamiento de montón basado en colas de mensajes
Rociado de búferes de socket
Patrones de reutilización controlada de objetos
El objetivo de este repositorio es educativo: comprender el comportamiento del montón del kernel y la metodología de explotación de vulnerabilidades en un entorno de laboratorio controlado.
Entorno de Laboratorio
Las pruebas deben realizarse únicamente en una máquina virtual aislada.
Configuración recomendada:
Ubuntu 20.04 o Debian con un kernel vulnerable
QEMU o VirtualBox
Instantánea habilitada antes de las pruebas
Entorno no productivo
Nunca ejecute esto en sistemas de producción.
Mitigación
La vulnerabilidad se corrigió ajustando la lógica de validación de límites en legacy_parse_param().
Pasos de mitigación:
Actualice a una versión de kernel parcheada
Deshabilite los espacios de nombres de usuario no privilegiados cuando sea posible
Monitoree actividad anormal del contexto del sistema de archivos
Versiones del kernel que contienen la corrección:
5.16.2
5.15.16
5.10.93
Referencia del parche: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
Qué Demuestra Este Proyecto
Comprensión profunda de los componentes internos del kernel Linux
Conciencia del diseño de la memoria de montón
Manipulación del ciclo de vida de objetos del kernel
Metodología de investigación de seguridad responsable
Prácticas de divulgación responsable
Uso Ético
Este proyecto se proporciona únicamente con fines educativos y de investigación de seguridad defensiva.
No intente utilizar este conocimiento en sistemas sin autorización explícita.