Update npm package chrome-devtools-mcp to v1 [SECURITY]#244
Update npm package chrome-devtools-mcp to v1 [SECURITY]#244hash-worker[bot] wants to merge 1 commit into
chrome-devtools-mcp to v1 [SECURITY]#244Conversation
PR SummaryLow Risk Overview The lockfile also reflects a dependency graph tweak: Reviewed by Cursor Bugbot for commit 762897e. Bugbot is set up for automated code reviews on this repo. Configure here. |
This PR contains the following updates:
^0.21.0→^1.0.0GitHub Vulnerability Alerts
CVE-2026-53765
Summary
The chrome-devtools-mcp daemon writes its PID file with
fs.writeFileSync()to a deterministic runtime path. On typical macOS environments, and on Linux sessions where$XDG_RUNTIME_DIRis unset, that runtime path falls back to/tmp/chrome-devtools-mcp-<uid>/daemon.pid.Because the write does not use
O_NOFOLLOW, a local low-privilege user on the same POSIX host can pre-create/tmp/chrome-devtools-mcp-<victim_uid>/daemon.pidas a symlink to a file writable by the victim. When the victim later starts daemon mode,fs.writeFileSync()follows the symlink and truncates the target file to the daemon PID string.This report is deliberately scoped to POSIX systems where the daemon falls back to
/tmp: typical macOS environments and Linux sessions without$XDG_RUNTIME_DIR. Windows is out of scope because the default temp directory is per-user and symlink creation has additional privilege requirements.Details
Affected code:
src/daemon/daemon.ts:38-42src/daemon/utils.ts:49-68The
/tmpsticky bit prevents non-owner file removal, but it does not prevent another local user from creating a subdirectory under/tmp. If an attacker creates/tmp/chrome-devtools-mcp-<victim_uid>/first and places a symlink atdaemon.pid, the victim's daemon process follows that link when writing the PID.Preconditions:
$XDG_RUNTIME_DIRis unset, or on a Linux system/session where$XDG_RUNTIME_DIRis unset.chrome-devtoolsCLI path or MCP integration that starts daemon mode.PoC
Realistic POSIX scenario:
Lab-only PoC that touches only a fresh
os.tmpdir()/cdtmcp-lab-*directory:Observed output from the lab PoC:
I can provide the standalone
pidfile_symlink_poc.cjsfile if needed. The attached/local version includes platform notes, Windows symlink-permission diagnostics, and cleanup guards.Impact
Who can exploit:
Any local user account on the same POSIX host where the victim runs the chrome-devtools-mcp daemon, when
$XDG_RUNTIME_DIRis unset for that user session.Security impact:
Example targets affected by truncation:
~/.ssh/authorized_keys, causing the victim to lose SSH access.~/.bashrc,~/.zshrc, or~/.profile, breaking shell startup..env,secrets.json, license files, or line-oriented config files.Suggested fix:
Open the PID file with
O_NOFOLLOWand validate runtime directory ownership/permissions before writing:Release Notes
ChromeDevTools/chrome-devtools-mcp (chrome-devtools-mcp)
v1.1.0Compare Source
🎉 Features
🛠️ Fixes
📄 Documentation
🏗️ Refactor
v1.0.1Compare Source
🛠️ Fixes
📄 Documentation
v0.26.0Compare Source
🎉 Features
🛠️ Fixes
📄 Documentation
🏗️ Refactor
v0.25.0Compare Source
🎉 Features
🛠️ Fixes
📄 Documentation
v0.24.0Compare Source
🎉 Features
🛠️ Fixes
v0.23.0Compare Source
🎉 Features
📄 Documentation
🏗️ Refactor
v0.22.0Compare Source
🎉 Features
🛠️ Fixes
📄 Documentation
🏗️ Refactor
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.