Runtime.exec è una chiamata dell'API Java usata per avviare un processo del sistema operativo dal codice. Invece di rimanere all'interno della Java Virtual Machine, il programma può richiamare una shell, eseguire un'utilità o avviare un altro eseguibile con gli argomenti forniti. Questo lo rende un ponte potente tra la logica dell'applicazione e il sistema operativo host.
Nel settore della sicurezza informatica, Runtime.exec è importante perché trasforma l'esecuzione di codice all'interno di un'applicazione Java in un possibile controllo dell'host. Se un attaccante può iniettare codice Java, abusare di un plugin o sfruttare una vulnerabilità di deserializzazione lato server, questa chiamata può essere usata per eseguire comandi, leggere file, creare utenti o scaricare strumenti aggiuntivi. I difensori la cercano nelle revisioni del codice, nell'analisi statica e nel monitoraggio runtime perché il comportamento che avvia comandi è spesso un segnale di funzionalità pericolose. Progettazioni più sicure evitano chiamate dirette alla shell, convalidano ogni input che arriva alla creazione di processi e limitano i privilegi dell'account del servizio, così che una catena di abuso riuscita abbia un impatto minore.


