Skip to main content

CLI Bridge CVE-2026-111045

| EUVDEUVD-2026-104412 HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-10-19 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Invoke MCP write_file tool
  2. Exploit
    Supply dangling symlink path outside workspace
  3. Execution
    Trigger ENOENT fallback in resolveSafePath
  4. Impact
    Write arbitrary file outside workspace root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Requires anshupriyan cli-bridge prior to 0.0.2 running as an MCP filesystem server with a configured WORKSPACE_ROOT. The attacker must be able to invoke the write_file tool and target a path that is a dangling symlink whose target does not exist (so fs.realpathSync throws ENOENT, triggering the vulnerable parent-only fallback) and which points outside the workspace root. Limiting factors: exploitation depends on the ability to place or reference such a symlink inside the workspace and to drive the write_file tool (typically via the LLM agent or local access), and the writing process runs with the invoking user's privileges, so impact is bounded by that user's filesystem permissions rather than true remote unauthenticated reach.

Impact

The input assigns CVSS 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N), rating this a network, unauthenticated, no-interaction integrity-only flaw. That network/unauthenticated framing conflicts with the actual nature of the product: CLI Bridge is a local Model Context Protocol (MCP) server (configured in Claude Desktop and Qwen Studio per the README) that exposes a write_file tool over a local stdio transport, so real exploitation is local/tool-mediated rather than remotely reachable over a network socket - verify the AV:N rating with the vendor, as AV:L is more defensible. The weakness (CWE-59, link following) is concrete and confirmed by the patch: resolveSafePath falls back to only resolving the parent directory when fs.realpathSync throws ENOENT on a dangling symlink target, returning the symlink path as 'safe' so write_file escapes the workspace root. No EPSS score, CISA KEV listing, or public POC is present in the provided data, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Net: a genuine sandbox-escape bug worth patching, but its real-world priority is limited by an obscure, tiny-footprint product and the need for attacker influence over the MCP tool's input rather than true remote unauthenticated reach - the raw 7.5 overstates practical urgency.

Exploit ScenarioDerived

An actor able to influence the MCP client's tool calls (for example via content/prompt injection into the agent driving CLI Bridge, or with local access to seed a symlink in the workspace) requests write_file against a path that is a dangling symlink pointing outside the workspace root. Because the symlink target does not exist, realpathSync throws ENOENT and the vulnerable fallback approves the path, causing the server to write attacker-controlled content to an arbitrary location such as a startup script or configuration file. No public exploit code is identified at time of analysis, and exploitation is low-complexity once the write_file tool can be invoked.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 19, 2026

Path traversal through dangling symlinks in anshupriyan CLI Bridge prior to 0.0.2 lets attackers who can drive the write_file MCP tool write arbitrary files outside the configured WORKSPACE_ROOT, an integrity-only impact bounded by the privileges of the user running the server. The flaw sits in resolveSafePath: when fs.realpathSync throws ENOENT because a symlink's target does not yet exist, the fallback validates only the parent directory and returns the symlink path as safe, so the subsequent write follows the link out of the sandbox. The project released a fix in 0.0.2 via PR #3 and commit 284a84c, and the independent assessment rates this local-vector (AV:L), unauthenticated, no-interaction integrity impact; no public exploit code or KEV-listed active exploitation was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to CLI Bridge 0.0.2 (release tag v0.0.2, https://github.com/anshupriyan/cli-bridge/releases/tag/v0.0.2), which incorporates PR #3 and commit 284a84c5ac4db8dd0e1bc9db81bd15bdc83fcb38; the advisory at https://github.com/anshupriyan/cli-bridge/security/advisories/GHSA-8jc4-x8v7-2q9r should be consulted for confirmation and any vendor guidance. Where immediate upgrade is not possible, compensating controls include removing or replacing dangling symlinks inside the workspace before granting write access (trade-off: legitimate symlink-based workflows break), running the MCP server under a dedicated low-privileged account whose filesystem permissions outside the workspace are minimal (trade-off: may require re-permissioning the workspace), and confining the process in a container or sandbox with the workspace as the only writable mount (trade-off: operational overhead, and any writable bind mount inside the sandbox reintroduces exposure). Because the fix itself notes a residual TOCTOU window between the lstat check and write_file, avoid running the server in multi-user environments where another local user can manipulate workspace symlinks concurrently, and restrict which clients or agents may invoke write_file.

Affected VersionsENISA

cli-bridge < 0.0.2

Affected Packages

euvd cli_bridge fix: 0.0.2

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

CLI Bridge is a Node.js MCP (Model Context Protocol) filesystem server that exposes tools such as write_file and confines them to a workspace root using a resolveSafePath helper built on path and fs.realpathSync. The root cause class is CWE-59 (Improper Link Resolution Before File Access, i.e. link following): the resolver's error path handled ENOENT from realpathSync as a benign condition and fell back to checking only the parent directory, which is insufficient when the entry itself is a dangling symlink. The upstream fix (commit 284a84c5ac4db8dd0e1bc9db81bd15bdc83fcb38) changes the fallback to throw when the parent directory cannot be verified and adds an fs.lstatSync check that rejects any entry which is itself a symbolic link, closing the dangling-symlink escape. The patch comments acknowledge a residual microsecond TOCTOU window between the lstat check and the write in multi-user environments, so the check is not a full race-free guarantee. Affected package coordinates are cpe:2.3:a:anshupriyan:cli-bridge:* with the fix shipping as version 0.0.2 (npm package renamed priyanshu-cli-bridge in the same release).

Know when Cli Bridge 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 (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 6.2 MEDIUM

CLI Bridge is a local MCP server invoked over stdio, so AV:L; the write_file tool has no auth of its own (PR:N) and the flaw yields arbitrary out-of-sandbox file writes (I:H, C:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 19, 2026 - 17:17 EUVD
CVE Published
Oct 19, 2026 - 15:42 cve.org
HIGH 7.5

DescriptionCVE.org

CLI Bridge provides filesystem access within a workspace root. Prior to 0.0.2, a dangling symlink pointing outside the workspace root bypasses resolveSafePath when fs.realpathSync throws ENOENT for a nonexistent target. The fallback resolves only the parent directory and returns the symlink path as safe, so write_file follows the link and can write arbitrary files outside the workspace root. This issue is fixed in version 0.0.2.

Technical POC Analysis

CWE-59 (Improper Link Resolution Before File Access / "Link Following"), in the workspace path validator resolveSafePath() of the priyanshu-cli-bridge (repo anshupriyan/cli-bridge) MCP server.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-111045 in anshupriyan CLI Bridge versions prior to 0.0.2 allows an attacker who can drive the write_file MCP tool to write files outside the configured workspace, compromising the integrity of data and configuration accessible to the service account. The vulnerability has a local attack vector and integrity-only impact bounded by the privileges of the user running the server; no public exploit code or KEV-listed active exploitation was identified at time of analysis. Leadership should care because unauthorized file writes could enable persistent tampering with application code, secrets, or system files within that user's privilege boundary.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified in the patch status field, but advisory text references a fix in 0.0.2; until that is confirmed and applied, restrict access to the write_file MCP tool, run the server as a low-privilege user, disallow symlinks within WORKSPACE_ROOT, and monitor for file writes outside the workspace.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Rare
obscure single-author npm MCP server, negligible production footprint
Data Quality
5 sources
Confidence: Medium

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.4%
Patch available Yes
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

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