← Back to CVE Explorer

CVE-2026-53766

Full vulnerability record from the local CVENow database.

Description

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.

Severity
MEDIUM
CVSS score
6.1 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-06-24 22:16:47.917000
Last modified
2026-10-25 23:10:00.167000
View original CVE JSON
{
  "id": "CVE-2026-53766",
  "sourceIdentifier": "[email protected]",
  "published": "2026-06-24T22:16:47.917",
  "lastModified": "2026-10-25T23:10:00.167",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    },
    {
      "lang": "es",
      "value": "Chrome DevTools para agentes (chrome-devtools-mcp) permite que su agente de codificación controle e inspeccione un navegador Chrome en vivo. Desde 0.24.0 hasta 1.1.0, McpContext.validatePath() aplica las raíces del espacio de trabajo al verificar si path.resolve(filePath) cae textualmente bajo una de las rutas raíz configuradas. path.resolve() no canoniza enlaces simbólicos. Como resultado, un enlace simbólico dentro de una raíz de espacio de trabajo configurada puede apuntar a un archivo fuera de esa raíz, pasar la validación y luego ser seguido por operaciones de lectura/escritura de archivos posteriores. Esta omisión se aplica incluso cuando el cliente MCP declara correctamente la capacidad de raíces con una lista no vacía. Está separado del comportamiento heredado documentado donde la capacidad de raíces faltante permite todas las rutas. El impacto práctico es una omisión del límite del espacio de trabajo. En la dirección de escritura, las herramientas de escritura de filePath pueden sobrescribir archivos fuera de la raíz a través de un enlace simbólico dentro de la raíz. En la dirección de lectura, upload_file puede leer a través del enlace simbólico y enviar el archivo a la página web actualmente seleccionada. Esta vulnerabilidad está corregida en 1.1.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "ChromeDevTools",
          "product": "chrome-devtools-mcp",
          "versions": [
            {
              "version": ">= 0.24.0, < 1.1.0",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L",
          "baseScore": 6.1,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "HIGH",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 4.2
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-06-25T23:13:11.013103Z",
          "id": "CVE-2026-53766",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-22"
        },
        {
          "lang": "en",
          "value": "CWE-59"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:google:chrome-devtools-mcp:*:*:*:*:*:node.js:*:*",
              "versionStartIncluding": "0.24.0",
              "versionEndExcluding": "1.1.0",
              "matchCriteriaId": "9BD336BF-0F30-4708-8AEA-E0B2144FFC10"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/ChromeDevTools/chrome-devtools-mcp/security/advisories/GHSA-8qf9-62x2-82pp",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://github.com/ChromeDevTools/chrome-devtools-mcp/security/advisories/GHSA-8qf9-62x2-82pp",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    }
  ]
}