Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker crafts repository with malicious .knowns/config.json binary path
-
DeliveryVictim clones or downloads attacker-controlled repository
-
ExploitVictim opens repository in knowns < 0.30.0
-
ExecutionLSP subsystem reads unvalidated binary field from project config
-
Persistknowns passes attacker path to OS exec twice across two code sites
-
ImpactArbitrary code executes under victim's user account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The victim must be running knowns before v0.30.0 and must open a project directory containing a .knowns/config.json with a malicious value in settings.lsp.languages.[langID].binary (for example, settings.lsp.languages.go.binary set to /bin/sh or any attacker-controlled path). The malicious repository must be present on the victim's local filesystem, typically via clone or download. The exploit triggers automatically during LSP initialization on project open, requiring no further user action within the application. Limiting factors: the victim must specifically use knowns rather than a mainstream editor; the malicious config file must reach disk before the project is opened; and the victim must be running a version prior to 0.30.0. No special system privileges or non-default OS configuration are required on the victim side. |
| Impact | The vendor-issued CVSS 4.0 score of 8.5 with vector AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H accurately represents the real-world risk profile. The local attack vector (AV:L) is the principal limiting factor: the malicious config must reach the victim's filesystem, typically via a repository clone or download. However, the UI:P metric correctly captures that the only user interaction required is opening a project in knowns - a routine, habitual developer action that provides minimal friction. No EPSS score or KEV listing is available for this CVE, and no public exploit code is identified at time of analysis; these signals moderate urgency for most teams. That said, the fully public patch diff and GHSA advisory lower the barrier to exploit development significantly, and the pattern of triggering code execution by opening a malicious repository is well-understood from analogous IDE-level supply-chain attacks. Developer-facing teams that regularly open repositories from external contributors or open-source projects represent the highest-risk population, and any team in that situation - whether a large enterprise or a small development shop - should treat this as a prompt patch priority given the zero-friction exploitation path once a malicious repository reaches disk. |
| Exploit ScenarioDerived | An attacker publishes or contributes a repository containing a .knowns/config.json that sets a language server binary (for example, the Go language entry) to /bin/sh or another attacker-controlled executable. When a developer running knowns before 0.30.0 clones and opens this repository, knowns automatically invokes the malicious binary twice during LSP initialization - executing arbitrary code under the developer's account with no further interaction. No public exploit code is identified at time of analysis, but the patch diff fully documents both vulnerable call sites. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 07, 2026
Arbitrary binary execution in knowns before 0.30.0 is triggered when a developer opens a repository containing a crafted .knowns/config.json with a malicious settings.lsp.languages binary value. The LSP subsystem passes the attacker-controlled binary path directly to OS execution routines without any allowlist check, invoking the path twice under the victim's user account with no verification step. No public exploit is identified at time of analysis, though the GitHub security advisory GHSA-mc52-mwq4-vfx3 and the patch commit d3989829 provide full technical detail on both vulnerable code paths.
RemediationAI
Upgrade knowns to v0.30.0 or later; the release is available at https://github.com/knowns-dev/knowns/releases/tag/v0.30.0 and the fixing commit is d3989829fb5095666d23d005b2f78a082832a396. The patch introduces strict allowlist validation of LSP binary overrides, ensuring only pre-registered language server binary names are accepted from project configuration. Until the upgrade is applied, the most effective compensating control is to avoid opening repositories from untrusted or unreviewed sources in knowns; organizations can additionally audit .knowns/config.json files in cloned repositories before opening them, inspecting the settings.lsp.languages field for unexpected binary values. No configuration-level toggle exists in unpatched versions to disable LSP binary override processing. Restricting filesystem access or sandboxing developer workstations provides partial defense but does not eliminate the execution path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
knowns is a developer environment with Language Server Protocol (LSP) integration, identified by CPE cpe:2.3:a:knowns-dev:knowns. LSP enables editors to delegate language intelligence tasks - auto-complete, diagnostics, references - to per-language server processes such as gopls for Go. The vulnerability is CWE-78 (Improper Neutralization of Special Elements used in an OS Command). Per-project configuration in .knowns/config.json may specify a binary override for each language server via the settings.lsp.languages.[langID].binary field. The vulnerable code paths are internal/lsp/detect.go (lines 128-157) and internal/models/config.go (lines 205-216): these constructed Binary or BinaryCandidate structs directly from the config-supplied name without validating it against any registered set, then forwarded the name to OS execution. The fix (commit d3989829) introduces selectBinaryOverride() and selectBinaryCandidateOverride() in a new binary_override.go, which enforce an allowlist by matching the override name strictly against binaries declared by the language adapter - rejecting any path or name not pre-registered. The same allowlist logic was applied across detect.go, manager.go, and status.go, corresponding to the two independent execution sites mentioned in the description.
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:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Malicious config must be on local disk (AV:L); victim opens project (UI:R); no privileges or special conditions needed; full code execution under user account (C:H/I:H/A:H).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Technical POC Analysis
The flaw is arbitrary execution of an attacker-influenced executable path.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Knowns, a developer configuration tool, contains a vulnerability enabling attackers to execute arbitrary code on developer machines through malicious repository configurations. This creates supply chain risk through potential compromise of development environments and code injection into organizational projects. Immediate patching and developer assessment are required.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
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 the knowns npm documentation tool (versions ≤ 0.29.1) enables remote unauthenticated attackers to read
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
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-72558
GHSA-6ph4-r249-58p2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB