CVE-2026-40576
Full vulnerability record from the local CVENow database.
Description
excel-mcp-server is a Model Context Protocol server for Excel file manipulation. A path traversal vulnerability exists in excel-mcp-server versions up to and including 0.1.7. When running in SSE or Streamable-HTTP transport mode (the documented way to use this server remotely), an unauthenticated attacker on the network can read, write, and overwrite arbitrary files on the host filesystem by supplying crafted filepath arguments to any of the 25 exposed MCP tool handlers. The server is intended to confine file operations to a directory set by the EXCEL_FILES_PATH environment variable. The function responsible for enforcing this boundary — get_excel_path() — fails to do so due to two independent flaws: it passes absolute paths through without any check, and it joins relative paths without resolving or validating the result. Combined with zero authentication on the default network-facing transport and a default bind address of 0.0.0.0 (all interfaces), this allows trivial remote exploitation. This vulnerability is fixed in 0.1.8.
View original CVE JSON
{
"id": "CVE-2026-40576",
"sourceIdentifier": "[email protected]",
"published": "2026-04-21T17:16:55.870",
"lastModified": "2026-10-26T21:10:00.170",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "excel-mcp-server is a Model Context Protocol server for Excel file manipulation. A path traversal vulnerability exists in excel-mcp-server versions up to and including 0.1.7. When running in SSE or Streamable-HTTP transport mode (the documented way to use this server remotely), an unauthenticated attacker on the network can read, write, and overwrite arbitrary files on the host filesystem by supplying crafted filepath arguments to any of the 25 exposed MCP tool handlers. The server is intended to confine file operations to a directory set by the EXCEL_FILES_PATH environment variable. The function responsible for enforcing this boundary — get_excel_path() — fails to do so due to two independent flaws: it passes absolute paths through without any check, and it joins relative paths without resolving or validating the result. Combined with zero authentication on the default network-facing transport and a default bind address of 0.0.0.0 (all interfaces), this allows trivial remote exploitation. This vulnerability is fixed in 0.1.8."
},
{
"lang": "es",
"value": "excel-mcp-server es un servidor de Protocolo de Contexto de Modelo para la manipulación de archivos de Excel. Existe una vulnerabilidad de salto de ruta en las versiones de excel-mcp-server hasta la 0.1.7 inclusive. Cuando se ejecuta en modo de transporte SSE o Streamable-HTTP (la forma documentada de usar este servidor remotamente), un atacante no autenticado en la red puede leer, escribir y sobrescribir archivos arbitrarios en el sistema de archivos del host al proporcionar argumentos de ruta de archivo manipulados a cualquiera de los 25 manejadores de herramientas MCP expuestos. El servidor está diseñado para confinar las operaciones de archivo a un directorio establecido por la variable de entorno EXCEL_FILES_PATH. La función responsable de hacer cumplir este límite - get_excel_path() - no lo hace debido a dos fallas independientes: pasa rutas absolutas sin ninguna verificación y une rutas relativas sin resolver o validar el resultado. Combinado con autenticación nula en el transporte predeterminado orientado a la red y una dirección de enlace predeterminada de 0.0.0.0 (todas las interfaces), esto permite una explotación remota trivial. Esta vulnerabilidad está corregida en la 0.1.8."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "haris-musa",
"product": "excel-mcp-server",
"versions": [
{
"version": "< 0.1.8",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H",
"baseScore": 9.4,
"baseSeverity": "CRITICAL",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 5.5
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H",
"baseScore": 9.4,
"baseSeverity": "CRITICAL",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 5.5
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-21T16:49:44.652947Z",
"id": "CVE-2026-40576",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"references": [
{
"url": "https://github.com/haris-musa/excel-mcp-server/security/advisories/GHSA-j98m-w3xp-9f56",
"source": "[email protected]"
},
{
"url": "https://github.com/haris-musa/excel-mcp-server/security/advisories/GHSA-j98m-w3xp-9f56",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}