Escudo de Código Dinámico
detect_dynamic_code_riskAnaliza el código fuente de una herramienta/agente en busca de ejecución de código dinámico no confiable (CWE-95): eval(), el constructor Function() de JS, exec() de Python, y las variantes del módulo "vm" de Node (vm.runInContext/runInNewContext/runInThisContext) llamadas con un texto que NO escribió el desarrollador — una variable, la respuesta de un modelo, un documento recuperado de un pipeline RAG, o un parámetro de herramienta — en vez de un texto fijo. También detecta el patrón de "eval implícito": setTimeout()/setInterval() llamado con un string en vez de una referencia a función. Detecta además una falsa sensación de seguridad propia de Garita: usar la librería vm2 para "sandboxear" la ejecución no es una mitigación real — vm2 está oficialmente deprecada desde 2023 tras varias fugas de sandbox críticas y documentadas (CVE-2023-32314, CVE-2023-37903, CVE-2023-37466); reconoce isolated-vm (aislamiento real a nivel de V8 Isolate) como mitigación genuina. Motivada por CVE-2026-26030 (CVSS 9.8, feb 2026) en Microsoft Semantic Kernel: el filtro de un vector store (InMemoryVectorStore) interpolaba contenido recuperado de un documento indexado — es decir, dato envenenado de un pipeline RAG, no una entrada directa del usuario — directamente en una expresión evaluada con eval(), dando RCE completo en el proceso del agente. Es un análisis estático por patrones de texto (no ejecuta el código) — mismo enfoque que detect_ssti_risk y detect_command_injection_risk, y una clase de vulnerabilidad distinta de esta última: ahí se invoca una shell externa (CWE-78), acá se evalúa código directamente dentro del propio intérprete/motor del agente. 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_dynamic_code_risk"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | El código fuente de la función/herramienta que evalúa código dinámicamente, en texto plano. | |
| lenguaje | No | Solo informativo (ej. "python", "javascript") — la detección ya cubre varios lenguajes a la vez, este campo no cambia el resultado. |