Mogu ukratko, ti kada pozivas system funkciju ona se obraca shell-u a shell onda poziva fork exec, e sada sav hakeraj se nalazi u tome da prevaris shell da on pozove drugi program, ovo je narocito opasno ako se tvoj program izvrsava pod drugim uidom(npr root).
ukoliko bi pozivao
system("ls");
tada shell prodje kroz PATH enviroment promenljivu i startuje prvu komandu koja mu se nalazi u path-u tada je trik da napadac promeni PATH tako da pokazuje prvo na direktorijum gde se nalazi njegova komanda ls koja ce da preuzme kontrolu nad sistemom jer ce biti pokrenuta pod drugim privilegijama.
E sada ces reci tipa pa dobro moze i ovako tada nema dodira sa PATH-om
system("/bin/ls");
u ovakvom slucaju napadac podesi IFS="/" (IFS=Input Field Separators. This is normally set to 〈space〉,〈tab〉, and 〈newline〉. See the White Space Splitting section for more details; man sh) napravi izvrsni fajl "bin" koji je kukavicije jaje u ovom slucaju. I opet je pokrenut drugi program umesto naseg zeljenog. Drugim recima shell je opasno jak alat pa je system(); nije preporucljiv za koriscenje.