{"items":[{"id":"NVI-00016247","kind":"vulnerability","title":"Chrome DevTools for agents: daemon.pid write follows symlinks in /tmp fallback runtime directory","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-3pvj-jv98-qhjq","CVE-2026-53765"],"plain_summary":"GitHub lists this reviewed advisory for chrome-devtools-mcp. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-55ae935e76a0b5a8988235dfb5763eb3"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-07-21T13:41:42.000Z","value":"6.1 medium","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-55ae935e76a0b5a8988235dfb5763eb3"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-55ae935e76a0b5a8988235dfb5763eb3","url":"https://github.com/advisories/GHSA-3pvj-jv98-qhjq","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-3pvj-jv98-qhjq","publisher":"GitHub Advisory Database","observed_at":"2026-11-03T22:34:49.300Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-55ae935e76a0b5a8988235dfb5763eb3"],"technology":"chrome-devtools-mcp","known_exclusions":[],"conditions_summary":"### Summary\n\nThe 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-/daemon.pid`.\n\nBecause the write does not use `O_NOFOLLOW`, a local low-privilege user on the same POSIX host can pre-create `/tmp/chrome-devtools-mcp-/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.\n\nThis 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.\n\n### Details\n\nAffected code:\n\n`src/daemon/daemon.ts:38-42`\n\n```ts\nconst pidFilePath = getPidFilePath(sessionId);\nfs.mkdirSync(path.dirname(pidFilePath), {\n  recursive: true,\n});\nfs.writeFileSync(pidFilePath, process.pid.toString());\n```\n\n`src/daemon/utils.ts:49-68`\n\n","public_affected_ranges":[">= 0.20.0, <= 1.0.1"]}],"null_published_at":"2026-11-04T10:04:27.922Z","source_updated_at":"2026-07-21T13:41:42.000Z","source_disclosed_at":"2026-06-17T14:01:04.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-03T22:34:49.300Z"}],"next_cursor":null,"snapshot_revision":"42594"}