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

Injection eval

Qu'est-ce que Injection eval ?

Injection evalSous-cas concret de l'injection de code causé par la transmission d'entrées non fiables à des primitives d'évaluation dynamique comme eval() en JavaScript ou eval/exec en Python.


L'injection eval est le sous-cas concret de l'injection de code : une fonction d'évaluation dynamique du langage — eval ou new Function en JavaScript, setTimeout(string), eval/exec en Python, eval en Ruby, équivalents en PHP, Application.Run en VBA — est invoquée sur des données provenant directement ou indirectement d'une entrée utilisateur. Ces primitives interprétant la chaîne comme du code source complet dans le processus hôte, l'exploitation procure une RCE au niveau du langage : accès aux imports, globales, système de fichiers, environnement et sous-processus. Les mitigations comprennent la suppression totale de l'évaluation dynamique, l'utilisation de parseurs sûrs (JSON.parse, ast.literal_eval), des validateurs en liste blanche pour les expressions, et des sandboxes comme vm2 ou des sous-processus restreints.

Exemples

  1. 01

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

  2. 02

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

Questions fréquentes

Qu'est-ce que Injection eval ?

Sous-cas concret de l'injection de code causé par la transmission d'entrées non fiables à des primitives d'évaluation dynamique comme eval() en JavaScript ou eval/exec en Python. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.

Que signifie Injection eval ?

Sous-cas concret de l'injection de code causé par la transmission d'entrées non fiables à des primitives d'évaluation dynamique comme eval() en JavaScript ou eval/exec en Python.

Comment fonctionne Injection eval ?

L'injection eval est le sous-cas concret de l'injection de code : une fonction d'évaluation dynamique du langage — eval ou new Function en JavaScript, setTimeout(string), eval/exec en Python, eval en Ruby, équivalents en PHP, Application.Run en VBA — est invoquée sur des données provenant directement ou indirectement d'une entrée utilisateur. Ces primitives interprétant la chaîne comme du code source complet dans le processus hôte, l'exploitation procure une RCE au niveau du langage : accès aux imports, globales, système de fichiers, environnement et sous-processus. Les mitigations comprennent la suppression totale de l'évaluation dynamique, l'utilisation de parseurs sûrs (JSON.parse, ast.literal_eval), des validateurs en liste blanche pour les expressions, et des sandboxes comme vm2 ou des sous-processus restreints.

Comment se défendre contre Injection eval ?

Les défenses contre Injection eval combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.

Quels sont les autres noms de Injection eval ?

Noms alternatifs courants : Injection eval(), Injection d'évaluation dynamique.

Termes liés