Live Exposure Defense: From CVE to Confirmed Exposure in 12 Hours – See more

New CVE Detected

CVE-2026-103591 – Unauthenticated Arbitrary File Read – DeepWiki-Open (through commit d92819a)

Be the first to know when new zero-days emerge:

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/file endpoint derives its "repository root" directory from the attacker-supplied repo_url parameter (via Repo(repo_url=repo_url, ...).save_path) and then checks that a requested file_path resolves inside that root. Because save_path simply echoes back whatever string is supplied when repo_url is 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) as repo_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/file endpoint — 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.py and api/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 d92819a that validates the repo_url/file_path combination against a fixed, pinned repository root (e.g., using os.path.commonpath against 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/structure endpoints (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_url values as a sign of exploitation attempts.

References

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

How IONIX’s External Exposure Management Platform Detects and Validates
Zero-Days to Shrink MTTR

1

Map your entire attack surface (continously)

IONIX uses multi-factor discovery methods, including DNS analysis, certificate mapping, metadata inspection, and more, to automatically map every internet-facing asset across your environment. This includes cloud instances, third-party platforms, shadow IT, and even forgotten infrastructure that traditional tools miss.

2

Monitor for new CVEs

Dozens of threat intel feeds using agentic technology are continuously analyzed to detect the appearance of proof-of-concept code, exploit kits, and indicators of active targeting. IONIX goes further by applying AI to proactively evaluate whether emerging vulnerabilities are likely to be exploited, even before PoCs go public.

3

Identify Potential External Exposures

Not all CVEs matter. IONIX filters vulnerabilities by asking attacker-centric questions: Can it be reached from the internet? Does it require authentication? Is it being exploited in the wild? This dramatically reduces noise and focuses teams on threats that can actually be weaponized.

4

Create Safe, Scalable Exploit Validations

IONIX transforms real-world PoCs into safe, non-intrusive test payloads that can be run in production environments without disruption. These simulations are precisely targeted to the systems that are vulnerable, ensuring rapid validation without unnecessary load.

5

Execute Exploit Validations

By combining context about software stack, versioning, exposure status, and reachability, IONIX ensures that only the right payloads are executed against the right assets, maximizing efficiency and minimizing risk.

6

Drive Fast and Actionable Remediation

Results are routed through integrations with ticketing, SOAR, and SIEM tools. Issues are written in plain language, bundled into remediation clusters, and prioritized based on asset criticality, exploitability, and blast radius. This shortens mean time to remediation (MTTR) and empowers teams to act with confidence.

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

Subscribe to Threat Center RSS

Copy/paste the link below into your preferred RSS reader or follow these instructions to subscribe to Slack alerts.

Get Real-Time CVE Alerts to Your Email

Be the first to know when new zero-days emerge