
Exploit de prueba de concepto para CVE-2023-0386, una vulnerabilidad de escalada de privilegios local en Linux OverlayFS. Demuestra cómo el manejo incorrecto de capacidades de archivos durante el copy-up permite a usuarios no privilegiados obtener acceso como root.
Este repositorio proporciona una prueba de concepto para CVE-2023-0386: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
Miembros del equipo: Bǎnicǎ Dragoș-Marius y Borsos Matheas-Roland
Aquí está el video: https://www.youtube.com/watch?v=Ikux1rjIYP0
Este repositorio contiene un exploit de prueba de concepto (PoC) para CVE-2023-0386, una vulnerabilidad de escalada de privilegios local en el subsistema OverlayFS del kernel de Linux.
La vulnerabilidad permite a un usuario local sin privilegios escalar privilegios a root explotando el manejo incorrecto de capacidades y propiedad de archivos durante las operaciones de copy-up de OverlayFS. El PoC demuestra cómo una configuración cuidadosamente elaborada de OverlayFS puede producir un ejecutable que retiene privilegios elevados, incluso cuando se copia desde un montaje nosuid.
OverlayFS es un sistema de archivos de unión utilizado para combinar múltiples árboles de directorios en una única vista unificada. Se usa ampliamente en:
OverlayFS consiste en:
Cuando se modifica un archivo de la capa inferior, OverlayFS realiza una operación de copy-up: el archivo se copia en la capa superior y luego se modifica allí.
La vulnerabilidad radica en cómo OverlayFS maneja los metadatos de los archivos durante el copy-up, específicamente:
CAP_SETUID)nosuidEn versiones del kernel afectadas:
nosuid.Esto rompe la suposición de seguridad de que los montajes nosuid previenen la escalada de privilegios.
CVE-2023-0386_POC/
├── exp.c # Main exploit logic
├── fuse.c # User-space filesystem helper (FUSE)
├── getshell.c # Privilege escalation payload
├── ovlcap/ # OverlayFS capability test utilities
│ ├── Makefile
│ └── ...
├── Makefile # Top-level build instructions
└── README.md
nosuid.gccmakelibfuse-dev (o equivalente)libcap-dev (o equivalente)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
Inicie dos terminales y en la primera escriba
./fuse ./ovlcap/lower ./gc
En la segunda terminal escriba
./exp