Summary
CVE-2026-90946 is an arbitrary file read vulnerability in DeepWiki-Open, an open-source AI-powered wiki generator for code repositories, affecting all versions through commit d92819a. The flaw resides in the unauthenticated /ws/chat WebSocket endpoint, which accepts a repo_url parameter and treats any value that does not start with http:// or https:// as a local filesystem path — with no containment or validation. A remote, unauthenticated attacker can point this parameter at an arbitrary directory on the host and have the application index and return the contents of every supported source, configuration, and document file within it, exposing hardcoded secrets and other sensitive data.
Technical details
- Root cause: The
/ws/chatWebSocket handler (api/repository.py, with related logic inapi/data_pipeline.py) does not validate or restrict therepo_urlparameter. Any value not prefixed withhttp://orhttps://is treated as a literal local filesystem path. - Trigger conditions: The endpoint is exposed without authentication by default, since DeepWiki-Open’s auth mode is disabled out of the box; the server also commonly binds to
0.0.0.0with a wildcard CORS policy (allow_origins=["*"]), making the endpoint reachable from the network with no credentials. - Attack vector: An attacker sends a crafted WebSocket message to
/ws/chatspecifying an absolute server-side path (e.g.,{"repo_url": "/home/appuser/app", "type": "local", "messages": [...]}). The server walks the specified directory tree and indexes every file with a supported extension (.py,.js,.ts,.go,.json,.yaml, etc.), then returns file contents through the retrieval-augmented chat interface. - Impact: Full-read disclosure of arbitrary files reachable by the application process, including source code, configuration files, and hardcoded credentials or API keys — with no authentication required (CWE-73: External Control of File Name or Path).
Affected software
- AsyncFuncAI deepwiki-open — all versions/commits up to and including commit
d92819a
Severity
- CVSS v3.1 Base Score: 7.5 (High) —
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS v4.0 Score (as scored by the reporting advisory): 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
Mitigation and recommended actions
- Immediate: No official vendor patch has been identified for this issue as of publication. Do not expose DeepWiki-Open’s
/ws/chatWebSocket endpoint, or the application as a whole, to untrusted networks. - Workarounds / network mitigations:
- Enable and enforce authentication on all ingestion/chat endpoints (do not rely on the default configuration, which disables auth mode).
- Bind the service to
127.0.0.1or an internal-only interface rather than0.0.0.0, and place it behind an authenticated reverse proxy if network access is required. - Replace wildcard CORS (
allow_origins=["*"]) with an explicit allowlist of trusted origins. - Restrict local repository ingestion to a single operator-configured root directory, rejecting absolute paths and path traversal sequences before any filesystem access occurs.
- Audit any existing DeepWiki-Open deployment for exposure and rotate any credentials or secrets that may have resided in files reachable by the application process.

