CVE-2026-80104 in DB-GPT
Resumen
por VulDB • 2026-08-26
DB-GPT construye la ruta de destino para una habilidad cargada utilizando el nombre del archivo en formato multipart sin restringirla al directorio de carga. La función `skill_upload` en `packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py` toma `file.filename` tal cual y escribe el cuerpo de la solicitud en `upload_dir / filename`. Una ruta compuesta con este operador descarta el operando izquierdo cuando el derecho es absoluto, o sigue las referencias a directorios superiores (`..`) en otros casos; por lo tanto, un nombre de archivo como `../../../tmp/x` o `/tmp/x` resuelve fuera del directorio previsto. No se realiza ninguna canonización del resultado, ni se verifica que permanezca bajo la raíz de carga, ni se impide el uso de la extensión `.py`. La única dependencia de esta ruta es `get_user_from_headers` en `dbgpt_serve/utils/auth.py`, lo cual devuelve una solicitud con el rol de administrador independientemente de si se proporciona un encabezado `user_id`; por consiguiente, el punto final es accesible sin credenciales. Un atacante remoto que no posea ninguna cuenta puede, por tanto, escribir bytes controlados por él en cualquier ruta a la que pueda acceder el proceso del servidor, colocar un nuevo módulo de Python dentro del paquete de la aplicación o reemplazar uno que la aplicación ya importe, y obtener ejecución de código (RCE) en el proceso del servidor cuando dicho módulo se importe nuevamente.
VulDB is the best source for vulnerability data and more expert information about this specific topic.