Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach unauthenticated Management API
-
DeliveryCraft ../ traversal in doc path field
-
ExploitcleanDocPath() fails to strip traversal sequences
-
Executionfilepath.Join() resolves path outside docsDir
-
PersistRead or write arbitrary .md files on host filesystem
-
ImpactChain write primitive toward code execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Default deployment of knowns where the Management API is unauthenticated and bound to all network interfaces (0.0.0.0) - this is explicitly described as the default configuration. No authentication, no special privileges, and no user interaction are required. Any network-reachable host can send a single HTTP request to the Document API (POST /api/docs or GET /api/docs/...) to trigger traversal. Exploitation is limited by the server-appended .md suffix on all file read/write operations; an attacker cannot read binary files or write files without the .md extension through this vector. Directory creation via os.MkdirAll carries no extension constraint. Deployments that restrict the Management API to localhost or enforce authentication at a reverse proxy layer are not exploitable remotely. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L) scoring 8.8 accurately reflects the threat model for default deployments: the Management API is unauthenticated and listens on all interfaces, making the flaw trivially exploitable from any network-reachable host. Confidentiality impact is constrained to Low because only .md files can be read, but integrity impact is High given arbitrary .md file creation and overwrite. Availability is Low rather than High because only .md files are directly deletable. The RCE tag in the input metadata reflects the chaining potential - the arbitrary-write primitive could be leveraged to overwrite documentation-adjacent configuration files or inject content processed by downstream tooling, though no direct code execution path is established by the description alone. No CISA KEV listing and no EPSS data were provided, indicating no confirmed active exploitation at time of analysis. The realistic risk is high for any internet-exposed knowns instance running the default unauthenticated configuration, but the product's limited deployment footprint (niche npm documentation tool) reduces population-level risk. The constraint to .md-suffixed files meaningfully limits the worst-case impact compared to an unconstrained write primitive. |
| Exploit ScenarioDerived | An attacker identifies an internet-exposed knowns instance running the default configuration. The attacker sends POST /api/docs with body {"path": "../../../../etc/knowns_backdoor"} to write an attacker-controlled .md file into a sensitive directory, or sends GET /api/docs/../../../../home/app/.ssh/authorized_keys to read any world-readable .md file on the host. If the target system processes .md files through a template engine or documentation renderer that executes embedded directives, the write primitive may be chained to achieve code execution. No public exploit code has been confirmed at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 09, 2026
Path traversal in the knowns npm documentation tool (versions ≤ 0.29.1) enables remote unauthenticated attackers to read, create, overwrite, or delete arbitrary files with a .md extension anywhere on the host filesystem, and to create arbitrary directories via os.MkdirAll. The Document API's sanitization function cleanDocPath() strips slashes and .md suffixes but leaves ../ sequences intact, allowing filepath.Join() to resolve paths outside the intended documents directory. In the default deployment - where the Management API binds to all interfaces without authentication - this is directly exploitable with a single crafted HTTP request, and the arbitrary-write primitive may be chained toward code execution. No confirmed active exploitation or public exploit code identified at time of analysis.
RemediationAI
Upgrade knowns to version 0.30.0, which patches the path traversal by properly neutralizing ../ sequences in cleanDocPath() before filepath.Join() resolves the final path. The fix is confirmed by the vendor GitHub security advisory (GHSA-3h35-4jq7-hv45). If immediate upgrade is not possible, apply the following compensating controls: bind the Management API to loopback (127.0.0.1) only rather than all interfaces, which eliminates remote unauthenticated access - note this may break legitimate remote management workflows. Alternatively, place the Management API behind a reverse proxy that enforces authentication, or use network-layer ACLs (firewall rules, security groups) to restrict access to the Management API port to trusted hosts only. These controls do not fix the underlying path traversal and should be considered temporary mitigations only.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
knowns is a Node.js documentation management server distributed as an npm package (CPE: cpe:2.3:a:knowns-dev:knowns). The vulnerability (CWE-22, Path Traversal) originates in two Go-language source files: internal/server/routes/docs.go, where cleanDocPath() normalizes user-supplied document paths by stripping leading/trailing slashes and .md suffixes but neglects to remove or reject ../ traversal sequences; and internal/storage/doc_store.go, where filepath.Join(ds.docsDir(), filepath.FromSlash(doc.Path)+".md") assembles the final filesystem path without verifying it remains within the documents root. Both the POST /api/docs and GET /api/docs/... HTTP endpoints are affected, permitting traversal payloads such as {"path": "../../../../tmp/knowns_pwn_marker"} or encoded path segments. Directory creation side-effects arise from os.MkdirAll calls in the write path. The .md extension suffix is appended by the server, so all file reads and writes are constrained to .md files, though directory creation carries no such constraint.
Know when Knowns 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N
Network-accessible unauthenticated default API; confidentiality limited to .md reads; integrity high for arbitrary .md writes; availability low for file deletion.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
knowns (npm package) versions <= 0.29.1 contain a path traversal vulnerability in the Document API. The HTTP handler in internal/server/routes/docs.go normalizes the user-supplied document path with cleanDocPath(), which strips leading/trailing slashes and the .md suffix but does not neutralize ../ traversal sequences, and internal/storage/doc_store.go then builds the target path with filepath.Join(ds.docsDir(), filepath.FromSlash(doc.Path)+".md") without verifying that the resolved path remains inside the documents directory. In the default deployment, where the Management API is unauthenticated and bound to all interfaces, a remote unauthenticated attacker can supply a traversal payload (for example {"path": "../../../../tmp/knowns_pwn_marker"} to POST /api/docs, or an encoded path to GET /api/docs/...) to read, create, overwrite, or delete arbitrary files with a .md extension anywhere on the host filesystem and to create arbitrary directories via os.MkdirAll. This can expose sensitive data stored in other projects' documentation, corrupt or destroy files, and provide an arbitrary-write primitive that may be chained toward code execution. The issue is fixed in version 0.30.0.
Articles & Coverage 1
Technical POC Analysis
CWE-22 (path traversal), with contributing missing access control.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The knowns npm documentation tool (versions ≤0.29.1) contains a path traversal vulnerability allowing unauthenticated attackers to read, modify, or delete arbitrary files on affected systems when deployed without authentication controls. Organizations using this tool face risks of sensitive data exposure, configuration tampering, and potential code execution. Immediate patching and network controls are critical to mitigate these risks.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Missing authentication in Knowns (knowns-dev/knowns) before 0.30.0 exposes the management API on all network interfaces
External control of a filesystem path in Knowns (knowns-dev/knowns) before 0.31.0 lets remote attackers escape the proje
Path traversal in knowns before v0.30.0 permits unauthenticated remote attackers to write files outside the designated i
Path traversal in knowns (a Go-based MCP-integrated knowledge management server) before version 0.30.0 allows authentica
Path traversal in the knowns template-preview API (versions before 0.30.0) allows unauthenticated remote attackers to re
Privilege escalation in knowns through 0.33.0 permits authenticated read-only agent sessions to bypass authorization con
Path traversal in the knowns code generation template engine (versions through 0.33.0) allows unauthenticated remote att
Arbitrary binary execution in knowns before 0.30.0 is triggered when a developer opens a repository containing a crafted
Path traversal in the knowns MCP server's handleCodeReplace() function allows unauthenticated network attackers to overw
Authorization bypass in knowns before v0.30.0 allows low-privileged users holding read-restricted sessions to escalate p
Path traversal in knowns through version 0.33.0 allows authenticated AI agent sessions to read arbitrary files anywhere
Server-side request forgery in Knowns ≤0.33.0 enables unauthenticated remote attackers to make the server issue outbound
EUVD-2026-74952
GHSA-h5q7-w9w4-9hcf
NVD
CVE.org
EPSS
Exploit-DB