Description
Chrome DevTools for agents (chrome-devtools-mcp) lets your coding agent control and inspect a live Chrome browser. From 0.20.0 until 1.1.0, 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_DIR is 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.pid as 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 vulnerability is fixed in 1.1.0.
Published: 2026-06-24
Score: 6.1 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Chrome DevTools for agents (chrome-devtools-mcp) lets your coding agent control and inspect a live Chrome browser. From 0.20.0 through 1.1.0, the daemon writes its PID file with fs.writeFileSync() to a deterministic runtime path. On typical macOS environments, and on Linux sessions where $XDG_RUNTIME_DIR is unset, that path falls back to /tmp/chrome-devtools-mcp-<uid>/daemon.pid. Because the write does not use the O_NOFOLLOW flag, a local low‑privilege user on the same POSIX host can pre‑create /tmp/chrome-devtools-mcp-<victim_uid>/daemon.pid as a symlink to a file writable by the victim. When the victim later starts the daemon, fs.writeFileSync() follows the symlink and truncates the target file, replacing its contents with the daemon PID string. This local file‑overwrite capability can be used to modify configuration files or other privileged data, potentially enabling privilege escalation or denial of service. The vulnerability is fixed in version 1.1.0.

Affected Systems

Vulnerable versions of ChromeDevTools:chrome-devtools-mcp from 0.20.0 up to and including 1.1.0, on macOS and Linux systems where the XDG_RUNTIME_DIR environment variable is unset and the fallback path resolves to /tmp/chrome-devtools-mcp-<uid>/daemon.pid.

Risk and Exploitability

The CVSS score of 6.1 indicates medium severity. The EPSS score is unavailable, and the vulnerability is not listed in CISA’s KEV catalog, suggesting a low to moderate exploitation probability to date. A local attacker with a user account on the same host can trivially create the offending symlink and wait for the victim to launch the daemon. Once the daemon runs, the attacker’s symlink will cause the written PID string to overwrite the targeted file. Relying on the lack of O_NOFOLLOW makes the vulnerability straightforward to exploit; however, it requires only local file system access.

Generated by OpenCVE AI on June 24, 2026 at 23:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade chrome-devtools-mcp to version 1.1.0 or later, which fixes the symlink issue.
  • If an upgrade is not possible, set XDG_RUNTIME_DIR to a directory owned by the daemon user rather than relying on the /tmp fallback.
  • Before starting the daemon, delete or rename any existing /tmp/chrome-devtools-mcp-<uid>/daemon.pid symlink to prevent accidental file overwrites.
  • Ensure that the PID file is written with the O_NOFOLLOW flag or perform a check for malicious symlinks before writing.

Generated by OpenCVE AI on June 24, 2026 at 23:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-3pvj-jv98-qhjq Chrome DevTools for agents: daemon.pid write follows symlinks in /tmp fallback runtime directory
History

Wed, 24 Jun 2026 21:45:00 +0000

Type Values Removed Values Added
Description Chrome DevTools for agents (chrome-devtools-mcp) lets your coding agent control and inspect a live Chrome browser. From 0.20.0 until 1.1.0, 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_DIR is 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.pid as 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 vulnerability is fixed in 1.1.0.
Title chrome-devtools-mcp: daemon.pid write follows symlinks in /tmp fallback runtime directory
Weaknesses CWE-59
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-24T21:30:42.954Z

Reserved: 2026-06-10T17:48:40.547Z

Link: CVE-2026-53765

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-24T23:30:03Z

Weaknesses
  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')