Skip to main content

DeepWiki-Open EUVDEUVD-2026-77713

| CVE-2026-90946 HIGH
External Control of File Name or Path (CWE-73)
2026-09-14 VulnCheck GHSA-76gj-49mh-j4cf
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Discover exposed /ws/chat WebSocket
  2. Delivery
    Open unauthenticated WS connection
  3. Exploit
    Send repo_url with filesystem path
  4. Install
    Server canonicalizes path without containment check
  5. C2
    Pipeline walks directory and reads supported files
  6. Execute
    Exfiltrate YAML/JSON/Python secrets
  7. Impact
    Reuse credentials against adjacent systems

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
Exploitation Conditions

Exploitation requires the DeepWiki-Open /ws/chat WebSocket endpoint to be network-reachable by the attacker and to have no authentication layer in front of it - the CVSS 4.0 vector is PR:N/UI:N, so no credentials and no user interaction are needed. The attacker must supply an absolute or traversal directory path in the repo_url field of the chat message, and the server process must have read permission on the target files; only files with the pipeline's supported extensions (Python, JavaScript, YAML, JSON) are parsed, so the exfiltration is limited to those types. Limits on real-world exploitation: instances bound to loopback, sitting behind an authenticating reverse proxy, or running in a container with a read-only or narrowly mounted filesystem expose far less; a source checkout pinned to a commit after a future fix is not affected, and the absence of integrity or availability impact means exploitation cannot directly alter or crash the service.

Impact

The CVSS 4.0 vector is AV:N/AC:L/AT:N/PR:N/UI:N with VC:H and no integrity or availability impact, and that maps to a CVSS 3.1 equivalent of roughly 7.5 - high severity, but a confidentiality-only primitive, not the remote code execution implied by the 'RCE' tag in the source metadata. The compensating factor is exposure: exploitation requires the WebSocket endpoint to be reachable from the attacker's network, so an instance bound to localhost, behind an authenticating reverse proxy, or inside a container with a read-only, narrowly mounted filesystem is largely unaffected, whereas one published to the internet is trivially harvestable by a script - even a mid-sized municipal IT team in legnica running a public demo instance should treat this as urgent. SSVC rates exploitation as 'poc' and automatable as 'yes' with partial technical impact, which supports rapid, scripted mass scanning; EPSS and KEV data are absent from this feed, so the precise probability of exploitation and whether real-world attacks have occurred are NOT confirmed - do not conflate the PoC signal with confirmed active exploitation. Note also the mild tension between CWE-73 and the tag set: the underlying CWE and the impact metrics describe information disclosure, not code execution.

Exploit ScenarioDerived

An attacker opens a WebSocket connection to the publicly reachable /ws/chat endpoint of a hosted DeepWiki-Open instance and sends a chat/repo_url message containing an absolute path such as / or /app or a home directory. The server resolves that path as the repository to index and walks it, returning the contents of matching .py, .js, .yaml and .json files over the same socket. Because the request is a single unauthenticated message with no timing or race conditions, the whole harvest can be scripted across thousands of hosts; the SSVC 'poc' status indicates exploit code is circulating.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 15, 2026

Unauthenticated arbitrary file read in DeepWiki-Open (AsyncFuncAI) through commit d92819a lets anyone who can reach the /ws/chat WebSocket endpoint pass an arbitrary directory path as the repo_url parameter and have the server walk that path with no containment check, exfiltrating every readable Python, JavaScript, YAML and JSON file it finds. Because the read is aimed at source and configuration files, the practical payoff is hardcoded secrets, API keys and credentials rather than code execution. A public proof of concept is indicated by SSVC exploitation status and the flaw is fully automatable, though it is not listed in CISA KEV as actively exploited.

RemediationAI

No vendor-released patched version is identified in the available data, so the primary action is to track https://github.com/AsyncFuncAI/deepwiki-open/issues/536 and the project repository for a fix commit or tagged release, and to upgrade as soon as one is published; until then, treat the deployment as untrusted-input-facing. The most effective compensating control is to stop exposing /ws/chat beyond a trusted boundary: bind the service to 127.0.0.1, remove any port-forward or public ingress rule for the WebSocket port, and terminate it behind a reverse proxy that enforces authentication - the trade-off is that remote collaborators and any hosted demo lose direct access. If the feature must stay reachable, run the service as an unprivileged user inside a container with a read-only root filesystem and only the intended repository directory bind-mounted, so path traversal cannot reach host secrets or cloud instance metadata; this limits breadth but does not remove the flaw. Disabling the /ws/chat endpoint entirely is the safest interim step if remote repository ingestion is not required, at the cost of the interactive chat feature. Rotate any API keys, tokens and database credentials stored in .env, YAML or JSON files that were present on a host whose WebSocket port was internet-reachable, since file contents may already have been read.

Affected VersionsENISA

deepwiki-open 0 ≤d92819a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

DeepWiki-Open is an open-source service (CPE cpe:2.3:a:asyncfuncai:deepwiki-open) that ingests a Git repository URL and generates documentation, using a WebSocket chat interface at /ws/chat to drive repository analysis. The vulnerable flow is in api/repository.py, where the client-supplied repo_url is treated as a filesystem path and passed into the indexing pipeline in api/data_pipeline.py without canonicalization or a check that the resolved path stays inside an allowed repository root. This is CWE-73 (External Control of File Name or Path): user input directly influences which file names are opened by the server process. The pipeline only parses a fixed set of file extensions (Python, JavaScript, YAML, JSON), which bounds but does not meaningfully reduce the value of the primitive, since those are exactly the file types that hold configuration and embedded credentials.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 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
vuln.today AI 7.5 HIGH

Unauthenticated network-reachable WebSocket with no special conditions gives PR:N and AC:L, but impact is confidentiality-only with no integrity or availability loss.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

DeepWiki-Open through commit d92819a contains an arbitrary file read vulnerability in the unauthenticated /ws/chat WebSocket endpoint that accepts repo_url as a filesystem path with no containment. Attackers can supply arbitrary directory paths to read all files with supported extensions including Python, JavaScript, YAML, and JSON files containing hardcoded secrets and credentials.

Threat Intelligence Overview

EPSS Score
0.6%
Top 55% exploitable
Prevalence
Low
niche self-hosted open-source repository documentation tool
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

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