Description
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.
Published: 2026-08-25
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

The vulnerability allows an attacker to write arbitrary files to the filesystem because the uploaded skill filename is used directly to build the destination path without proper validation. A malicious filename such as ../../../../tmp/malicious.py defeats the intended upload directory and the file is written without restriction. The uploaded code can be any content, including a Python module, and when the application later imports it, the attacker achieves code execution within the server process. This flaw is a classic path traversal (CWE-22) that grants full control of the application environment.

Affected Systems

The flaw exists in the DB-GPT application version 0.8.0 from eosphoros-ai. Only this release is affected; later releases, such as v0.8.1, have applied a fix.

Risk and Exploitability

With a CVSS score of 9.3, the vulnerability is considered critical. No EPSS score is available, but the absence of authentication requirements means an attacker can exploit the flaw remotely and immediately. The endpoint is accessible without credentials, and the server process has ordinary file-write privileges, making arbitrary file creation and subsequent code execution straightforward. The flaw is not listed in the CISA KEV catalog, but its high severity and lack of protection make it an urgent risk.

Generated by OpenCVE AI on August 26, 2026 at 00:18 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade DB-GPT to v0.8.1 or later, which fixes the path validation logic.
  • If an upgrade is not immediately possible, restrict the skill upload handler to enforce that the destination directory remains within the intended root by canonicalizing paths and rejecting absolute or relative paths that navigate outside the root.
  • Implement authentication for the upload endpoint and restrict the ability to upload files to administrative users only, ensuring no unauthenticated users can reach the vulnerable route.

Generated by OpenCVE AI on August 26, 2026 at 00:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 23:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 26 Aug 2026 03:15:00 +0000

Type Values Removed Values Added
First Time appeared Eosphoros-ai
Eosphoros-ai db-gpt
Vendors & Products Eosphoros-ai
Eosphoros-ai db-gpt

Tue, 25 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Description 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.
Title DB-GPT 0.8.0 Path Traversal Arbitrary File Write via Skill Upload Filename
First Time appeared Dbgpt
Dbgpt db-gpt
Weaknesses CWE-22
CPEs cpe:2.3:a:dbgpt:db-gpt:*:*:*:*:*:*:*:*
Vendors & Products Dbgpt
Dbgpt db-gpt
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-29T11:48:02.709Z

Reserved: 2026-08-25T19:35:42.640Z

Link: CVE-2026-80104

cve-icon Vulnrichment

Updated: 2026-08-28T22:36:46.139Z

cve-icon NVD

Status : Received

Published: 2026-08-25T21:18:24.163

Modified: 2026-08-28T23:17:12.590

Link: CVE-2026-80104

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T03:00:09Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')