Summary
CVE-2026-103591 is an unauthenticated arbitrary file read vulnerability in AsyncFuncAI’s deepwiki-open, an open-source AI-powered documentation/codemap tool for Git repositories. The flaw resides in the GET /codemap/file endpoint, where a broken path-containment check allows a remote, unauthenticated attacker to read arbitrary files accessible to the API process. The issue carries a CVSS v4.0 base score of 8.7 (High), reflecting network exploitability, low attack complexity, and no privileges or user interaction required.
Technical details
- Root cause: The
/codemap/fileendpoint derives its "repository root" directory from the attacker-suppliedrepo_urlparameter (viaRepo(repo_url=repo_url, ...).save_path) and then checks that a requestedfile_pathresolves inside that root. Becausesave_pathsimply echoes back whatever string is supplied whenrepo_urlis not a genuine HTTP(S) URL, the attacker fully controls the value used as the "trusted" root. - Trigger conditions: By submitting a non-URL value (e.g., an absolute filesystem path such as
/or/etc) asrepo_url, an attacker makes the containment check compare a path against itself, effectively neutralizing the confinement logic and allowing traversal to any location on disk. - Attack vector: Network-based, unauthenticated, single HTTP GET request to the
/codemap/fileendpoint — no user interaction or prior access required. - Impact: Disclosure of arbitrary files readable by the API process, including configuration files and provider/LLM API keys used by the application, with no impact to integrity or availability (read-only exposure).
- Affected components:
api/services/codemap.pyandapi/routers/codemap.py; related unauthenticated endpoints in the same code area (/codemap/stream,/ws/codemap,/prepare,/local_repo/structure) were also flagged as lacking equivalent path confinement.
Affected software
- AsyncFuncAI deepwiki-open — all versions/builds through commit
d92819a(inclusive)
Severity
- CVSS v4.0: 8.7 (High) —
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 - CVSS v3.1: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CWE-73: External Control of File Name or Path
Mitigation and recommended actions
- Immediate: Upgrade deepwiki-open to a version/commit released after
d92819athat validates therepo_url/file_pathcombination against a fixed, pinned repository root (e.g., usingos.path.commonpathagainst a non-attacker-controlled base directory) rather than a caller-supplied root. - If no patch is available:
- Restrict or disable public/unauthenticated access to the
/codemap/file,/codemap/stream,/ws/codemap,/prepare, and/local_repo/structureendpoints (e.g., place them behind authentication, an API gateway, or network ACLs limiting access to trusted clients only). - Run the deepwiki-open API process with least-privilege filesystem permissions and avoid storing secrets (API keys, credentials) in locations readable by that process.
- Monitor API/access logs for requests to these endpoints containing absolute file paths or unexpected
repo_urlvalues as a sign of exploitation attempts.
- Restrict or disable public/unauthenticated access to the

