PoC - CVE-2024-23334 (aiohttp ≤ 3.9.1) - Directory Traversal via follow_symlinks
Resumen
Desarrollé una Proof of Concept (PoC) que demuestra una vulnerabilidad de Directory Traversal en aiohttp cuando la aplicación se configura para servir archivos estáticos con la opción follow_symlinks=True.
La vulnerabilidad permite acceder a archivos arbitrarios del sistema de ficheros fuera del directorio raíz configurado para contenido estático. La PoC fue verificada en un entorno controlado y publicada en Exploit Database (EDB-ID 52474).
Esta entrada documenta el vector afectado, la técnica empleada, el entorno de pruebas y las recomendaciones de mitigación.
Detalle técnico
Producto afectado: aiohttp
Versión: ≤ 3.9.1
CVE: CVE-2024-23334
Componente vulnerable: Static file handling (
follow_symlinks=True)Ruta afectada:
/static/Tipo de vulnerabilidad: Directory Traversal
CWE: CWE-22 – Improper Limitation of a Pathname to a Restricted Directory
Descripción de la PoC
La PoC demuestra que, cuando aiohttp está configurado para servir contenido estático con la opción follow_symlinks=True, no se valida correctamente que la ruta solicitada permanezca dentro del directorio raíz definido.
Mediante el uso de secuencias de traversal (../), es posible escapar del directorio estático y acceder a archivos ubicados en otras rutas del sistema.
La PoC está deliberadamente restringida a localhost para evitar su uso indebido y está diseñada exclusivamente para validación en entornos de laboratorio.
Comportamiento demostrado
Acceso a archivos arbitrarios fuera del directorio estático configurado.
Lectura de ficheros del sistema accesibles por el proceso aiohttp.
Confirmación de que la ruta solicitada no es normalizada ni validada correctamente antes de acceder al sistema de archivos.
Entorno de pruebas
Plataforma: Linux
Aplicación: aiohttp 3.9.1
Entorno: Vulhub (Docker)
Herramientas empleadas:
Docker / Docker Compose
curl
Script Python (PoC local)
Escenario: Entorno local / laboratorio controlado
Impacto
Un atacante remoto podría explotar esta vulnerabilidad para:
Leer archivos sensibles del sistema (impacto alto en confidencialidad).
Acceder a configuraciones, secretos o credenciales almacenadas en el host.
Facilitar ataques posteriores mediante el acceso a información interna de la aplicación.
El impacto es especialmente relevante en entornos contenerizados o servicios expuestos, donde aiohttp puede ejecutarse con permisos elevados.
Mitigaciones recomendadas
Actualizar aiohttp a la versión 3.9.2 o superior.
Evitar el uso de
follow_symlinks=Truesalvo que sea estrictamente necesario.Validar y normalizar las rutas solicitadas antes de acceder al sistema de archivos.
Ejecutar la aplicación con el principio de mínimos privilegios.
Colocar la aplicación detrás de un reverse proxy con controles adicionales de rutas.
Referencias
Exploit Database: https://www.exploit-db.com/exploits/52474
CVE Record: https://nvd.nist.gov/vuln/detail/CVE-2024-23334
Esta PoC ha sido desarrollada únicamente con fines educativos y de investigación. No debe ejecutarse contra sistemas en producción ni sin autorización expresa. Seguir siempre prácticas de responsible disclosure.
Last updated