Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 392

Inyección en eval

¿Qué es Inyección en eval?

Inyección en evalCaso particular de inyección de código causado por pasar entrada no confiable a primitivas de evaluación dinámica como eval() de JavaScript o eval/exec de Python.


La inyección en eval es el caso concreto de inyección de código donde la función de evaluación dinámica de un lenguaje — eval o new Function de JavaScript, setTimeout con string, eval/exec de Python, eval de Ruby, equivalentes en PHP o VBA — se invoca con datos que provienen directa o indirectamente del usuario. Como estas primitivas interpretan la cadena como código fuente completo en el proceso anfitrión, la explotación produce un RCE de nivel de lenguaje: acceso a importaciones, variables globales, sistema de archivos, entorno y procesos hijos. Las mitigaciones incluyen eliminar la evaluación dinámica, usar parsers seguros (JSON.parse, ast.literal_eval), validadores con listas blancas estrictas para expresiones matemáticas, y sandboxes como vm2 o subprocesos restringidos.

Ejemplos

  1. 01

    Python: result = eval(request.form['expr']) — payload __import__('os').system('id').

  2. 02

    Node: new Function('return ' + req.query.f)() — payload process.mainModule.require('child_process').execSync('id').

Preguntas frecuentes

¿Qué es Inyección en eval?

Caso particular de inyección de código causado por pasar entrada no confiable a primitivas de evaluación dinámica como eval() de JavaScript o eval/exec de Python. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.

¿Qué significa Inyección en eval?

Caso particular de inyección de código causado por pasar entrada no confiable a primitivas de evaluación dinámica como eval() de JavaScript o eval/exec de Python.

¿Cómo funciona Inyección en eval?

La inyección en eval es el caso concreto de inyección de código donde la función de evaluación dinámica de un lenguaje — eval o new Function de JavaScript, setTimeout con string, eval/exec de Python, eval de Ruby, equivalentes en PHP o VBA — se invoca con datos que provienen directa o indirectamente del usuario. Como estas primitivas interpretan la cadena como código fuente completo en el proceso anfitrión, la explotación produce un RCE de nivel de lenguaje: acceso a importaciones, variables globales, sistema de archivos, entorno y procesos hijos. Las mitigaciones incluyen eliminar la evaluación dinámica, usar parsers seguros (JSON.parse, ast.literal_eval), validadores con listas blancas estrictas para expresiones matemáticas, y sandboxes como vm2 o subprocesos restringidos.

¿Cómo defenderse de Inyección en eval?

Las defensas contra Inyección en eval combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Inyección en eval?

Nombres alternativos comunes: Inyección en eval(), Inyección de evaluación dinámica.

Términos relacionados