Summary
CVE-2026-72713 is a path traversal vulnerability in OpenBMB’s XAgent, an open-source autonomous AI agent framework, affecting the /workspace/file endpoint of its XAgentServer component. An authenticated attacker can supply directory-traversal sequences in the file_name parameter to read arbitrary files on the host, including application secrets, database credentials, and system files outside the intended Docker sandbox. The vulnerability carries a high-severity rating (base score 8.7) and is remotely exploitable over the network with low attack complexity.
Technical details
- Root cause: The
POST /workspace/fileendpoint (implemented inXAgentServer/application/routers/workspace.py) concatenates the user-suppliedfile_nameform field to a base directory usingos.path.join()without validating or sanitizing the input for../sequences or absolute paths. - Trigger conditions: An attacker submits a request to
/workspace/filewithfile_nameset to a traversal payload (e.g.,../../../../../../etc/passwd), along with a validuser_id,token, andinteraction_id. - Attack vector: Network-based; authentication is required, but valid credentials are trivially obtainable — XAgent’s registration endpoint (
POST /user/register) auto-approves new accounts without email verification whensend_email=False(the default configuration), and the application also ships with a documented default credential pair (admin/xagent-admin). - Impact: Successful exploitation allows arbitrary file read on the underlying host, breaking the Docker sandbox isolation the tool relies on. Exposed data can include
.envfiles with database credentials, JWT and SMTP secrets, SSH keys, and other system files. A related issue in the same report — missing user-scope filtering inget_interaction()— also permits cross-user access to interaction data (IDOR), compounding exposure risk.
Affected software
- Vendor/Product: OpenBMB XAgent
- Affected versions: All versions/commits prior to the fix commit
26f2b6edc75127af524f027c022b382967178e3a
Severity
- CVSS Score: 8.7 (High)
- CVSS 4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Attack Vector: Network
Mitigation and recommended actions
- Immediate: Upgrade XAgent to a version that includes commit
26f2b6edc75127af524f027c022b382967178e3a(merged via pull request #432), which introducespath_security.pyvalidation utilities (safe_child_path(),validate_plain_filename(),safe_upload_path(),safe_workspace_path()) to reject absolute paths, null bytes, backslashes, and..sequences across file upload/download and workspace endpoints. The patch also removes the separate/register_new_toolendpoint, which previously allowed arbitrary code registration. - If immediate patching is not possible:
- Restrict network exposure of the XAgentServer (default listens on
0.0.0.0:8090) to trusted networks only; do not expose it directly to the internet. - Disable self-service registration or enforce email verification (
send_email=True) to prevent unauthenticated actors from easily obtaining accounts. - Change or remove the default
admin/xagent-admincredentials immediately. - Run the service under a least-privilege account and container isolation that does not expose sensitive files (
.env, credential stores, SSH keys) to the workspace filesystem path. - Monitor logs for requests to
/workspace/filecontaining../sequences or unexpected absolute paths.
- Restrict network exposure of the XAgentServer (default listens on

