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.
// 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// 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 confiableEjemplo 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Inyección de Prompts
highEl input del usuario se concatena directo en el prompt del LLM, permitiendo que atacantes sobreescriban tus instrucciones y hagan que la IA haga lo que ellos quieran.
Filtración de PII a Modelos de IA
highTu app manda información personal identificable — emails, nombres, contraseñas, teléfonos — a APIs de IA externas, exponiendo datos de usuarios a proveedores de modelos de terceros.
Respuesta de IA Sin Validación
mediumEl output de un LLM se renderiza o ejecuta directo sin verificar si coincide con el formato esperado o contiene contenido dañino.
API Key de IA en el Frontend
criticalTu API key de OpenAI, Anthropic u otro proveedor de IA está expuesta en el código del cliente, donde cualquiera puede robarla y acumular cargos en tu cuenta.