Un programma CGI è un componente di gestione web che riceve richieste HTTP e le trasforma in azioni su un dispositivo. Nei sistemi embedded come switch, router e telecamere, spesso alimenta l'interfaccia di amministrazione usata per visualizzare lo stato, modificare le impostazioni o inviare moduli. Anche se sembra una semplice funzionalità web, di solito si trova vicino al piano di gestione e può essere eseguito con privilegi elevati.
Questo è importante nella sicurezza informatica perché il codice CGI è un punto comune in cui si verificano bug nella gestione dell'input, inclusi buffer overflow, command injection e falle di autenticazione. Un attaccante che riesce a raggiungere l'interfaccia web può inviare una richiesta costruita ad hoc per colpire un percorso CGI vulnerabile, causando potenzialmente un crash o prendendo il controllo del dispositivo. I difensori dovrebbero trattare i componenti CGI come una superficie d'attacco di alto valore: limitare l'accesso, applicare patch al firmware e verificare che le interfacce di gestione non siano esposte dove non dovrebbero esserlo.


