{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "0.8.2"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "5352a4a56f626254b445bfa07e4bb48c5aad15c1"
            },
            {
              "fixed": "46d75f467d1a8f3c88b7224eacfd4038a969e7e8"
            }
          ],
          "repo": "https://github.com/that1drifter/browse-mcp",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-m9mq-7m7q-xc6p"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-22"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55557.json"
  },
  "details": "browse-mcp is a Playwright-based headless-browser MCP server for MCP-capable agents. Prior to 0.8.2, browser_download writes a fetched response body to join(save_dir, filename) without validating the caller-controlled save_dir, while browser_save_state and browser_load_state honor a caller-controlled path unchanged. A malicious MCP client, or an autonomous agent steered by indirect prompt injection on a visited page, can choose an arbitrary save_dir or state path and a URL whose response body becomes attacker-controlled file contents, allowing writes to any path the process can reach, including ~/.bashrc, autostart entries, or cron files, and potentially leading to host code execution. The force_fetch fallback also uses a raw fetch() that bypasses the BROWSE_MCP_ALLOWED_ORIGINS origin fence. This issue is fixed in version 0.8.2.",
  "id": "CVE-2026-55557",
  "modified": "2026-08-27T11:31:17.309478223Z",
  "published": "2026-08-25T16:28:07.368Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/That1Drifter/browse-mcp/blob/v0.8.2/CHANGELOG.md#082---2026-06-13"
    },
    {
      "type": "WEB",
      "url": "https://github.com/That1Drifter/browse-mcp/releases/tag/v0.8.2"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55557.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/That1Drifter/browse-mcp/security/advisories/GHSA-m9mq-7m7q-xc6p"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-55557"
    },
    {
      "type": "FIX",
      "url": "https://github.com/That1Drifter/browse-mcp/commit/5352a4a56f626254b445bfa07e4bb48c5aad15c1"
    },
    {
      "type": "FIX",
      "url": "https://github.com/That1Drifter/browse-mcp/pull/58"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "browse-mcp: Arbitrary file write via unconfined download and state paths"
}