Detectar riesgo de reenvío de tokens OAuth (token passthrough)
detect_token_passthrough_riskAnaliza el código fuente de un middleware o herramienta MCP que maneja el token de autorización de quien lo llama, en busca de señales del antipatrón "token passthrough" (confused deputy): (1) un middleware que deja pasar la petición (next()/call_next()) sin ninguna verificación de autorización reconocible antes — el patrón exacto detrás de CVE-2026-48039 (Meta Ads MCP, CVSS 9.1 CRÍTICO), donde un dispatch() reenviaba peticiones sin validar el header Authorization y filtraba el token de larga duración del operador; (2) el token de autorización de la petición ENTRANTE reenviado tal cual hacia otra llamada saliente, sin revalidarlo ni reemitir uno propio — la especificación oficial de MCP prohíbe explícitamente que un servidor acepte o reenvíe tokens que no fueron emitidos para él; (3) una verificación de JWT (jwt.verify/ jwt.decode) que no valida el claim "audience"/"aud", con lo que nada distingue un token emitido para este servidor de uno emitido para cualquier otro; y (4) un token colocado como parámetro de una URL en vez de en un header, expuesto en logs y cabeceras Referer. El mismo patrón de reenvío sin validar también aparece en CVE-2025-6514 (mcp-remote, CVSS 9.6) y CVE-2026-27826 (MCP Atlassian, CVSS 8.2). Es un análisis estático por patrones de texto (no ejecuta el código) — mismo enfoque que detect_ssrf_risk, detect_path_traversal_risk, detect_command_injection_risk y detect_sql_injection_risk. Requiere una llave de acceso válida (usos gratis o créditos) — ver POST /crear-llave.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"codigo": "<codigo>"
},
"name": "detect_token_passthrough_risk"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | El código fuente del middleware/herramienta que maneja el token de autorización, en texto plano. | |
| lenguaje | No | Solo informativo (ej. "javascript", "python") — la detección ya cubre varios lenguajes a la vez, este campo no cambia el resultado. |