Detectar inyección en plantillas (SSTI)
detect_ssti_riskAnaliza el código fuente de una herramienta que compila una plantilla (Jinja2, EJS, Handlebars, Pug, Mustache, lodash, o un PromptTemplate de LangChain) en busca de una fuente de plantilla que no escribió el desarrollador — una variable/entrada externa usada como el TEXTO de la plantilla, en vez de como un dato que se rellena en una plantilla fija. La mayoría de estos motores permiten llamar métodos y recorrer atributos de objetos desde dentro de la plantilla, así que una plantilla controlada por un atacante puede terminar en ejecución arbitraria de código en el servidor (SSTI) — algo distinto de XSS y no cubierto por ningún analizador de HTML. También detecta una falsa sensación de seguridad propia de Garita: el código afirma estar protegido porque "escapa la salida" (autoescape=True, html.escape, MarkupSafe) — una defensa real contra XSS pero irrelevante acá, porque la ejecución ocurre al COMPILAR la plantilla, antes de que exista ninguna salida que escapar. Reconoce un entorno sandboxeado de Jinja2 (SandboxedEnvironment) como una mitigación real. Motivada por CVE-2026-33154 (CVSS 8.1) en Dynaconf, una librería de configuración muy usada por apps de IA/agentes; un aviso en Agenta-AI (plataforma de evaluación de LLMs) por SSTI vía plantillas Jinja2 de evaluador personalizado; y un aviso en LangChain mismo, el framework de agentes más usado, por inyección en plantillas de prompt vía acceso a atributos. Es un análisis estático por patrones de texto (no ejecuta el código) — mismo enfoque que detect_sql_injection_risk, detect_command_injection_risk y detect_insecure_deserialization_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_ssti_risk"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | El código fuente de la función/herramienta que compila una plantilla, 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. |