CWE-95 descrive la neutralizzazione impropria delle direttive in codice valutato dinamicamente. In termini semplici, un programma prende input da un utente o da un'altra fonte esterna e lo inserisce in un percorso in stile eval, dove tale input può essere interpretato come istruzioni anziché come dati. Se l'input non viene rigorosamente convalidato e sottoposto a escaping, un attaccante può inserire comandi o espressioni che l'applicazione esegue.
Questa debolezza è importante perché può trasformare un piccolo difetto nella gestione dell'input in esecuzione di codice remoto, soprattutto nelle applicazioni web, nei plugin o nei motori di template. Negli attacchi reali, CWE-95 compare spesso quando i parametri raggiungono funzionalità di matematica dinamica, analisi di espressioni, rendering di template o scripting. I difensori riducono il rischio evitando la valutazione a runtime di input non attendibili, utilizzando parser sicuri, applicando allowlist e limitando i privilegi dell'interprete. Le revisioni di sicurezza dovrebbero segnalare qualsiasi percorso di codice in cui dati esterni possano influenzare espressioni eseguibili.


