title: Arbitrary code execution
text: # Arbitrary code execution
  
  In sicurezza informatica, l'arbitrary code execution (in italiano: "esecuzione arbitraria di codice") è una terminologia usata per descrivere l'abilità di un attaccante ad eseguire qualsiasi comando su un potenziale obiettivo, sia un calcolatore che un processo eseguito su di esso.
  
  ## Vulnerabilità
  
  Di solito è comune parlare di vulnerabilità da arbitrary code execution per descrivere una falla di un software che dà a un attaccante un modo di eseguire codice arbitrario. Un programma che è stato progettato per sfruttare questo tipo di vulnerabilità si chiama "arbitrary code execution exploit".
  
  Molte di queste vulnerabilità permettono di eseguire codice macchina e molti exploit inoltre iniettano ed eseguono shellcode per dare all'attaccante un modo facile di eseguire i comandi manualmente.
  
  L'abilità di far scattare l'esecuzione del codice da una macchina a un'altra è spesso nominato come "remote code execution" (RCE) ovvero "esecuzione di codice da remoto". Questo è il peggior effetto che una falla possa avere poiché permette all'attaccante di avere completamente il controllo del processo vulnerabile. Da ciò l'attaccante può avere il controllo completo della macchina che sta eseguendo quel processo. Le vulnerabilità da arbitrary code execution sono comunemente sfruttate dal malware eseguito sulla macchina senza il consenso del proprietario.
  
  L'arbitrary code execution è comunemente raggiunta attraverso il controllo sul program counter (conosciuto anche come instruction pointer) di un processo in esecuzione.
  
  