CVE-2026-86775
HighCVSS 8.6Exploitation Probability (EPSS)
Low risk40th percentile - higher than 40% of all known CVEs
Summary
The npm package "knowns" versions <= 0.29.1 contain a path traversal vulnerability in the Document API. The cleanDocPath() function does not neutralize ../ sequences, and doc_store.go builds the target path without verifying it stays inside the documents directory. In the default deployment (unauthenticated Management API bound to all interfaces), a remote unauthenticated attacker can read, create, overwrite, or delete arbitrary .md files and create directories on the host. The issue is fixed in version 0.30.0.
Risk Assessment
An attacker can expose sensitive data from other projects' documentation, corrupt or destroy files, and leverage an arbitrary-write primitive toward code execution. The risk is critical because exploitation requires no authentication.
Recommendation
Immediately upgrade the "knowns" package to version 0.30.0 or later. Restrict access to the Management API through authentication and bind it only to trusted interfaces.
Other vulnerabilities in knowns
See all- CVE-2026-88940Medium
knowns through 0.33.0 fails to validate the path query parameter in the workspace browse endpoint, allowing remote attackers to enumerate arbitrary directories on the host filesystem. Attackers can traverse the directory structure to locate project directories and identify targets for further exploitation.
- CVE-2026-88939High
knowns through 0.33.0 unconditionally exempts the project.set action from permission guard checks. Read-only agent sessions can bypass restrictions by invoking project.set to repoint the server at another project directory and obtain write access capabilities.
- CVE-2026-88938Medium
knowns through 0.33.0 fails to confine the path argument of the code.find MCP tool to the project root, allowing AI agent sessions to read source files anywhere on the host. Attackers can supply absolute paths or relative traversal sequences to the path argument and retrieve full file contents from outside the intended project directory.
- CVE-2026-88937High
knowns through 0.33.0 fails to properly validate template destination paths in the code generation template engine, allowing attackers to read and write arbitrary files outside the project root. Attackers can supply malicious templates that traverse directories to overwrite shell profiles, steal credentials, or achieve persistent code execution on victim systems.
- CVE-2026-88899Critical
knowns versions before 0.31.0 fail to properly validate the x-opencode-directory request header in the /api/opencode proxy endpoint. Remote attackers can supply arbitrary directory paths to execute file operations outside the project root on the host system.
- CVE-2026-86543Critical
Vulnerability in knowns before version 0.30.0 serves the management API without authentication on all network interfaces by default, with no password required on fresh installations. Attackers can access the unauthenticated /api/tunnel/start endpoint to provision a public tunnel and republish the API at a publicly accessible address.
- CVE-2026-86542Critical
Vulnerability in knowns before 0.30.0 fails to validate import names in the import routes, allowing unauthenticated attackers to write files outside the imports directory. Attackers can supply traversal sequences in the name parameter to escape the imports directory and overwrite arbitrary files writable by the server process.
- CVE-2026-86544High
Vulnerability in knowns versions before 0.30.0 contain an authorization bypass vulnerability where mutating code actions are incorrectly classified as read-only operations. Attackers with read-restricted sessions can exploit code.replace to modify permission configurations and escalate privileges on subsequent calls.
- CVE-2026-86541High
Vulnerability in knowns versions before 0.30.0 contain a path traversal vulnerability in the handleCodeReplace() function that allows attackers to overwrite arbitrary files outside the project root. Attackers can supply absolute paths or relative paths containing directory traversal sequences to write malicious content to sensitive files like shell startup scripts or SSH configuration files.
- CVE-2026-86540High
Vulnerability in knowns versions before 0.30.0 fail to validate the settings.lsp.languages binary field in project configuration files, allowing attackers to execute arbitrary binaries by crafting a malicious .knowns/config.json file. When a repository with a crafted configuration is opened, the unvalidated binary path is executed twice under the user's account without any verification.
Original NVD description (English source)
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.

