DB-GPT builds the destination path for an uploaded skill from the multipart filename without constraining it to the upload directory. skill_upload in packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py takes file.filename as given and writes the request body to upload_dir / filename. A path composed with that operator discards the left operand when the right one is absolute and follows parent references otherwise, so a filename such as ../../../tmp/x or /tmp/x resolves outside the intended directory; nothing canonicalises the result, checks that it remains under the upload root, or prevents a .py suffix. The route's only dependency is get_user_from_headers in dbgpt_serve/utils/auth.py, which returns a request carrying the admin role whether or not a user_id header is supplied, so the endpoint is reachable without credentials. A remote attacker holding no account can therefore write attacker-controlled bytes to any path the server process can write, place a new Python module inside the application package or replace one the application already imports, and obtain code execution in the server process when that module is next imported.
Security readout for executives and security teams
Plain-English summary
DB-GPT 0.8.0 contains an unauthenticated skill-upload flaw that can write attacker-controlled files outside the intended folder. An exposed server could be altered, disrupted, or potentially taken over when a malicious Python file is imported. This warrants urgent investigation.
Executive priority
Treat exposed DB-GPT 0.8.0 systems as an immediate remediation priority. Restrict access now, investigate for unauthorized file changes, and obtain vendor-confirmed upgrade guidance. Potential server compromise justifies incident-response involvement when suspicious uploads or module modifications are found.
Technical view
The upload handler joins its destination with the untrusted multipart filename without canonicalization or containment checks. Absolute paths and parent references can escape the upload directory. The cited authentication helper assigns an admin role without requiring credentials. Writable application modules could be created or replaced, enabling code execution upon import.
Likely exposure
Exposure is supported for DB-GPT 0.8.0 where the skill-upload API is reachable. Internet-facing deployments are at greatest risk, but internal access also matters because no account is reportedly required. Other versions are not established as affected by the supplied evidence.
Exploitation context
The CVSS 3.1 score is 9.8 because exploitation is remote, low-complexity, unauthenticated, and requires no user interaction. Successful abuse could affect confidentiality, integrity, and availability. The supplied record is not in KEV, and no source provided confirms active exploitation.
Researcher notes
The evidence directly identifies unsafe path construction and permissive authentication behavior in version 0.8.0. Code execution is a consequence of writing into an imported module path, not necessarily immediate during upload. The supplied sources do not explicitly confirm that v0.8.1 fixes the issue, so remediation status remains incomplete.
Mitigation direction
Identify and isolate every DB-GPT 0.8.0 deployment immediately.
Restrict the skill-upload route to trusted administrative networks or disable it temporarily.
Run DB-GPT with minimal filesystem permissions to limit writable destinations.
Check vendor guidance and v0.8.1 release notes before selecting an upgrade target.
Preserve relevant logs and suspicious files for incident investigation.
Validation and detection
Confirm the installed DB-GPT and dbgpt-app versions on every deployment.
Determine whether the skill-upload API is reachable without valid credentials.
Review upload and proxy logs for unusual skill-upload requests or filenames.
Inspect writable application directories for unexpected or recently changed Python modules.
Verify compensating access controls block unauthenticated and untrusted network access.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-22: File access and web shell behavior lookup
File traversal and upload weaknesses can lead teams to review file, web shell, execution, and collection telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
The CVE wording references file access or upload behavior, so file telemetry and web shell review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
1ADP providers
6Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.