Skip to main content

ChatDev EUVDEUVD-2026-40373

| CVE-2026-58166 HIGH
Path Traversal (CWE-22)
2026-06-30 VulnCheck GHSA-hh77-fhmp-pqfv
8.8
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
8.8 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/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
vuln.today AI
9.1 CRITICAL

Unauthenticated single-request upload to a network endpoint gives AV:N/AC:L/PR:N/UI:N; arbitrary write/delete is I:H/A:H with no file read, so C:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

7
Source Code Evidence Fetched
Jun 30, 2026 - 17:43 vuln.today
Analysis Updated
Jun 30, 2026 - 17:43 vuln.today
v3 (cvss_changed)
Analysis Updated
Jun 30, 2026 - 17:41 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jun 30, 2026 - 17:22 vuln.today
cvss_changed
Severity Changed
Jun 30, 2026 - 17:22 NVD
CRITICAL HIGH
CVSS changed
Jun 30, 2026 - 17:22 NVD
9.1 (CRITICAL) 8.8 (HIGH)
Analysis Generated
Jun 30, 2026 - 17:15 vuln.today

DescriptionCVE.org

OpenBMB ChatDev through 2.2.0, fixed in commit 4fd4da6, contains a path traversal vulnerability that allows unauthenticated remote attackers to write or delete arbitrary files by supplying a malicious multipart filename in the file upload endpoint. Attackers can send a crafted filename containing path traversal sequences or an absolute path to the POST uploads session endpoint, which constructs the destination path without sanitization in save_upload_file, causing file write and cleanup operations to target attacker-chosen paths on the server filesystem.

AnalysisAI

Arbitrary file write and delete in OpenBMB ChatDev through 2.2.0 lets unauthenticated remote attackers control destination paths on the server by abusing the multipart filename in the upload session endpoint. Because save_upload_file joins the attacker-supplied filename onto the temp directory without sanitization, a traversal or absolute-path filename redirects both the write and the subsequent cleanup unlink to arbitrary host locations. Publicly available exploit code exists and a vendor fix is available (commit 4fd4da6); there is no public exploit identified as actively exploited in CISA KEV at time of analysis.

Technical ContextAI

ChatDev is OpenBMB's open-source multi-agent LLM framework for collaborative software development; the affected component is its FastAPI-based attachment/upload handler (server/services/attachment_service.py). The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / path traversal): the multipart 'filename' field is fully attacker-controlled, yet AttachmentService.save_upload_file used 'upload.filename or "upload.bin"' and joined it directly onto a freshly created temp directory. A filename such as '../../../etc/cron.d/x' or an absolute path '/abs/path/secret.key' escapes the intended temp/WareHouse area, so the file-write operation lands on an attacker-chosen path and the cleanup step's unlink then deletes that same traversed path. The fix introduces _safe_upload_filename, which normalizes both POSIX and Windows separators and reduces the input to its final basename (falling back to 'upload.bin' for empty, '.', or '..').

RemediationAI

Upgrade to a ChatDev build that includes the fix commit 4fd4da603801766b14ad8788649cfc1ad21f99a6 (merged via PR https://github.com/OpenBMB/ChatDev/pull/641); since the upstream fix is a tagged commit/PR rather than a clearly named release, treat 'Upstream fix available (commit/PR); released patched version not independently confirmed' and pin to or beyond that commit. If you cannot patch immediately, do not expose the upload session endpoint to untrusted networks: restrict access to the POST uploads endpoint via authentication, a reverse-proxy allowlist, or network segmentation (trade-off: breaks remote/multi-user upload workflows), and run ChatDev under a low-privilege service account on a filesystem where the process cannot write to sensitive paths such as cron directories, web roots, or application source (trade-off: requires careful permission hardening and may interrupt legitimate file handling). As a code-level workaround mirroring the official fix, normalize the multipart filename to its basename before joining it to the storage directory. Consult the VulnCheck advisory (https://www.vulncheck.com/advisories/openbmb-chatdev-unauthenticated-path-traversal-in-upload-handler-allows-arbitrary-file-write-and-delete) for details.

Share

EUVD-2026-40373 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy