criticalCWE-95OWASP LLM02:2025

Ejecución de Código Generado por IA

Tu app usa eval() o Function() para ejecutar código generado por un LLM, dando a los atacantes un camino hacia ejecución arbitraria de código vía inyección de prompts.

Cómo Funciona

Algunas apps le piden a una IA que genere JavaScript que se ejecuta directamente con eval() o new Function(). Si un atacante puede influir en el prompt (mediante su propio input o inyección indirecta), puede craftar un prompt que haga que la IA genere código malicioso — que tu app luego ejecuta con todos los privilegios del servidor. Esto es Ejecución Remota de Código por un camino muy indirecto.

Código Vulnerable
// MAL: ejecutando código generado por IA con eval()
const aiCode = await askAI(`Escribe una función JS para filtrar: ${userFilter}`);
// Si userFilter fue inyectado, aiCode podría ser malicioso
const result = eval(aiCode); // Ejecución completa de código
Código Seguro
// BIEN: nunca ejecutes output de IA como código — usa outputs estructurados en su lugar
// Pídele a la IA datos/config, no código ejecutable
const filterConfig = await askAI(`Devuelve configuración JSON de filtro para: ${sanitizedFilter}`);
const config = JSON.parse(filterConfig); // parsear como datos
const result = applyFilter(data, config); // corre tu propia función confiable

Ejemplo Real

Los asistentes de código con IA que generan y ejecutan código automáticamente en local son particularmente vulnerables. Un proof-of-concept de 2024 mostró que al embeber instrucciones maliciosas en un comentario de código dentro de un archivo siendo analizado, un atacante podía hacer que una IA de código generara y ejecutara un reverse shell.

Cómo Prevenirlo

  • Nunca uses eval() o new Function() en output generado por IA bajo ninguna circunstancia
  • Rediseña para usar outputs de datos estructurados (configs JSON, parámetros) en lugar de código ejecutable de la IA
  • Si absolutamente debes correr código generado por IA, usa un sandbox aislado (Docker, WebAssembly, vm2) sin acceso a red/sistema de archivos
  • Valida todo el código generado por IA contra una allowlist de operaciones seguras antes de cualquier ejecución
  • Trata el código generado por IA con la misma desconfianza que el input del usuario — porque con inyección de prompts, lo es

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas