Skip to main content

chrome-devtools-mcp CVE-2026-53766

| EUVDEUVD-2026-39104 MEDIUM
Path Traversal (CWE-22)
2026-06-24 GitHub_M GHSA-8qf9-62x2-82pp
6.1
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.1 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
vuln.today AI
7.3 HIGH

C upgraded to H from C:N because upload_file demonstrably exfiltrates out-of-root file contents; all other metrics consistent with local, low-privilege symlink placement.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

3
Patch available
Jun 24, 2026 - 23:03 EUVD
Analysis Generated
Jun 24, 2026 - 22:27 vuln.today
CVE Published
Jun 24, 2026 - 21:29 cve.org
MEDIUM 6.1

DescriptionCVE.org

Chrome DevTools for agents (chrome-devtools-mcp) lets your coding agent control and inspect a live Chrome browser. From 0.24.0 until 1.1.0, McpContext.validatePath() enforces workspace roots by checking whether path.resolve(filePath) textually falls under one of the configured root paths. path.resolve() does not canonicalize symbolic links. As a result, a symlink inside a configured workspace root can point to a file outside that root, pass validation, and then be followed by downstream file read/write operations. This bypass applies even when the MCP client correctly declares the roots capability with a non-empty list. It is separate from the documented legacy behavior where missing roots capability allows all paths. The practical impact is a workspace-boundary bypass. In the write direction, filePath-writing tools can overwrite out-of-root files through an in-root symlink. In the read direction, upload_file can read through the symlink and send the file to the currently selected web page. This vulnerability is fixed in 1.1.0.

AnalysisAI

Symlink-based workspace boundary bypass in chrome-devtools-mcp (versions 0.24.0 through before 1.1.0) allows a local low-privileged actor - including an AI coding agent itself - to read or overwrite files outside the configured workspace root. The McpContext.validatePath() function performs only a lexical prefix check on the resolved path and never canonicalizes symbolic links, so an in-root symlink whose target lies outside the root passes validation and causes downstream file operations to act on the real out-of-workspace target. No public exploit has been identified and the CVE is not listed in CISA KEV; a vendor-released patch is available in version 1.1.0.

Technical ContextAI

chrome-devtools-mcp is a Node.js MCP (Model Context Protocol) server package (CPE: cpe:2.3:a:chromedevtools:chrome-devtools-mcp:*:*:*:*:*:*:*:*) that exposes Chrome browser control and inspection capabilities to AI coding agents. The vulnerability is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) variant rooted in the behavior of Node.js path.resolve(): it normalizes path separators and resolves . and .. components lexically but does NOT follow or resolve symbolic links. McpContext.validatePath() calls path.resolve(filePath), then checks whether the result begins with one of the configured root path strings. A symlink residing at workspace/link whose POSIX target is /etc/shadow produces a resolved path of /workspace/link - which passes the prefix check - but when downstream fs operations open the path the OS kernel follows the symlink to the real target. This applies to both read operations (upload_file exfiltrates the symlink target's content to the active web page) and write operations (filePath-writing tools overwrite the out-of-root target). The bypass is distinct from the documented legacy behavior where an MCP client that omits roots capability altogether allows all paths; here the roots capability IS correctly declared and populated, but the symlink escapes the declared boundary.

RemediationAI

Upgrade chrome-devtools-mcp to version 1.1.0, the vendor-released patch that fixes validatePath() by canonicalizing symbolic links before performing the workspace root prefix check. Details are in the security advisory at https://github.com/ChromeDevTools/chrome-devtools-mcp/security/advisories/GHSA-8qf9-62x2-82pp. If immediate upgrade is not possible, apply OS-level controls to prevent symlink creation within workspace directories: on Linux, mount workspace volumes with the nosymfollow option (available in kernels 5.10+) to cause symlinks to fail at the VFS layer rather than be followed - note this will break any legitimate tooling that relies on symlinks inside the workspace. Alternatively, enforce a seccomp or AppArmor/SELinux policy that denies symlink(2) calls by the agent process. Disabling the upload_file tool in the MCP configuration mitigates only the confidentiality (read) direction and does not address the write-direction bypass. Audit existing workspace directories for unexpected symbolic links before relying on compensating controls, as malicious symlinks may have already been placed.

Share

CVE-2026-53766 vulnerability details – vuln.today

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