
Guía de PoC y detección para la RCE crítica no autenticada en IBM Langflow OSS, que cubre la omisión del token auto_login y la evaluación insegura de Python en /validate/code.
Vulnerabilidad crítica de ejecución remota de código no autenticada que afecta a IBM Langflow OSS.
La vulnerabilidad es el resultado de encadenar dos debilidades:
/api/v1/auto_login puede emitir un token de portador SUPERUSER privilegiado a un llamador de red no autenticado./api/v1/validate/code procesa código Python controlado por el atacante en un contexto de ejecución no seguro.Cuando se encadenan, estas debilidades pueden resultar en la ejecución arbitraria de código Python con los privilegios del proceso backend de Langflow.
La vulnerabilidad tiene una puntuación CVSS v3.1 de 9.8 (Crítica) y está clasificada como CWE-94 — Control Inadecuado de la Generación de Código.
| Producto | Versiones vulnerables | Versión corregida |
|---|---|---|
| IBM Langflow OSS | 1.0.0 – 1.10.0 | 1.10.1 |
IBM recomienda actualizar a Langflow OSS 1.10.1.
CVSS: 9.8 Crítico
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Atacante no autenticado
|
v
/api/v1/auto_login
|
| Token de portador SUPERUSER
v
/api/v1/validate/code
|
| Evaluación insegura de Python
v
Ejecución remota de código
|
v
Proceso backend de Langflow
El problema de seguridad importante no es simplemente que exista cualquiera de los dos endpoints. El impacto proviene de la combinación de un mecanismo de derivación de autenticación/emisión de tokens con un mecanismo inseguro de validación de código.
Una explotación exitosa puede proporcionar a un atacante ejecución de código en el contexto de seguridad del backend de Langflow.
Dependiendo del despliegue, esto puede exponer:
Por lo tanto, el impacto práctico depende en gran medida de los privilegios y el acceso de red disponibles para el proceso de Langflow.
Las siguientes solicitudes están destinadas a la identificación no destructiva y no contienen una carga útil de ejecución de código.
GET / HTTP/1.1
Host: TARGET
Accept: */*
Connection: close
GET /docs HTTP/1.1
Host: TARGET
Accept: text/html,*/*
Connection: close
GET /api/v1/auto_login HTTP/1.1
Host: TARGET
Accept: application/json
Connection: close
Para pruebas defensivas, registre el código de estado, las cabeceras y la estructura de la respuesta en lugar de intentar usar cualquier material de credenciales devuelto.
Un patrón de telemetría defensiva útil es:
/api/v1/auto_login
seguido poco después por
/api/v1/validate/code
Una fuente que realice estas solicitudes sin el tráfico normal del frontend de Langflow a su alrededor merece especial atención.
No pruebe la vulnerabilidad enviando Python arbitrario a /api/v1/validate/code contra una instancia de producción.
Un flujo de validación seguro es:
1. Identificar la versión de Langflow
2. Confirmar si es <= 1.10.0
3. Revisar los registros de acceso de los endpoints afectados
4. Comprobar la emisión inesperada de tokens SUPERUSER
5. Revisar los registros de proceso/aplicación en busca de ejecución sospechosa de Python
6. Actualizar a 1.10.1
7. Rotar las credenciales potencialmente expuestas
8. Investigar el host si se sospecha explotación
Monitoree:
POST /api/v1/validate/code
GET /api/v1/auto_login
POST /api/v1/auto_login
El comportamiento particularmente sospechoso incluye:
/api/v1/auto_login200 OK que contienen un access_tokenauto_login seguida inmediatamente de /api/v1/validate/codeActualice Langflow OSS a:
1.10.1 o posterior
IBM recomienda específicamente actualizar a 1.10.1.
Si se sospecha explotación, parchear por sí solo no debe considerarse suficiente. Revise los registros y la telemetría del host y rote los secretos que puedan haber sido accesibles para el proceso de Langflow.
CISA añadió CVE-2026-9198 a su catálogo de Vulnerabilidades Explotadas Conocidas el 4 de agosto de 2026.
Este repositorio está destinado a investigación de seguridad autorizada, análisis de vulnerabilidades, ingeniería de detección y entornos de laboratorio controlados.
| Métrica | Valor |
|---|
| Vector de ataque | Red |
| Complejidad de ataque | Baja |
| Privilegios requeridos | Ninguno |
| Interacción del usuario | Ninguna |
| Confidencialidad | Alta |
| Integridad | Alta |
| Disponibilidad | Alta |
| Alcance | Sin cambios |