[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"repo-stars":3,"vuln-CVE-2026-80104":6},{"stargazers_count":4,"fetched_at":5},7,"2026-08-26T04:49:15.964Z",{"id":7,"descriptions":8,"cisa":9,"weaknesses":10,"exploits":40,"aliases":41,"duplicate_of":9,"upstream":42,"downstream":43,"duplicates":44,"related":45,"reserved_at":9,"published_at":46,"modified_at":46,"state":47,"summary":48,"references_raw":55,"kevs":81,"epss":9,"epss_history":82,"metrics":83,"affected":95},"CVE-2026-80104","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.",null,[11],{"_key":12,"id":12,"name":13,"description":14,"type":15,"status":16,"abstraction":17,"likelihood_of_exploit":18,"capec":19},"CWE-22","Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","weakness","Stable","Base","High",[20,24,28,32,36],{"id":21,"name":22,"techniques":23},"CAPEC-126","Path Traversal",[],{"id":25,"name":26,"techniques":27},"CAPEC-64","Using Slashes and URL Encoding Combined to Bypass Validation Logic",[],{"id":29,"name":30,"techniques":31},"CAPEC-76","Manipulating Web Input to File System Calls",[],{"id":33,"name":34,"techniques":35},"CAPEC-78","Using Escaped Slashes in Alternate Encoding",[],{"id":37,"name":38,"techniques":39},"CAPEC-79","Using Slashes in Alternate Encoding",[],[],[],[],[],[],[],"2026-08-25T20:18:35.843Z","Received",{"cisa_kev":49,"cisa_ransomware":49,"cisa_vendor":9,"epss_severity":9,"epss_score":9,"severity":50,"severity_score":51,"severity_version":52,"severity_source":53,"severity_vector":54,"severity_status":47},false,"critical",9.8,"v3.1","cve.org","CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",[56,62,67,72,76],{"url":57,"sources":58,"tags":60},"https://github.com/eosphoros-ai/DB-GPT",[53,59],"nvd",[61],"Product",{"url":63,"sources":64,"tags":65},"https://github.com/eosphoros-ai/DB-GPT/blob/v0.8.0/packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py",[53,59],[66],"Technical Description",{"url":68,"sources":69,"tags":70},"https://github.com/eosphoros-ai/DB-GPT/releases/tag/v0.8.1",[53,59],[71],"Release Notes",{"url":73,"sources":74,"tags":75},"https://pypi.org/project/dbgpt-app/",[53,59],[61],{"url":77,"sources":78,"tags":79},"https://www.vulncheck.com/advisories/db-gpt-0.8.0-path-traversal-arbitrary-file-write-via-skill-upload-filename",[53,59],[80],"Third Party Advisory",[],[],[84,91],{"source":53,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":85,"cvss_v4_0":88},{"baseScore":51,"baseSeverity":86,"vectorString":54,"impactScore":51,"exploitabilityScore":87},"CRITICAL",10,{"baseScore":89,"baseSeverity":86,"vectorString":90,"impactScore":9,"exploitabilityScore":9},9.3,"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",{"source":59,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":92,"cvss_v4_0":93},{"baseScore":51,"baseSeverity":86,"vectorString":54,"impactScore":51,"exploitabilityScore":87},{"baseScore":89,"baseSeverity":86,"vectorString":94,"impactScore":9,"exploitabilityScore":9},"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",[96],{"ecosystem":9,"name":97,"vendor":98,"product":99,"cpe_part":100,"purl_type":9,"purl_namespace":9,"purl_name":9,"source":9,"versions":101},"DB-GPT","eosphoros-ai","db-gpt","a",[102],{"version":103,"is_range":104,"range_type":53,"version_start":105,"version_start_type":106,"version_end":107,"version_end_type":108,"fixed_in":9},">= 0.8.0, \u003C 0.8.1",true,"0.8.0","including","0.8.1","excluding"]