Sto lavorando su una "app" binario radice SUID che esegue un comando system("ls -la /dir") . Sono riuscito a sfruttarlo scrivendo un sostituto malevolo ls che avvia una shell e ho modificato $PATH del mio utente tale che il% maligno% co_de viene eseguito anziché quello in ls .
Ho notato che eseguirlo come utente restituisce una shell di root mentre è in esecuzione con /bin usa il percorso di root e semplicemente elenca i file in dir. Per quanto ne so, setuid eredita i privilegi del proprietario (in questo caso root) per utente e sudo viene eseguito come root.
Come vengono chiamate tali vulnerabilità?
In che modo lo sviluppatore di un'applicazione lo patch?
C'è un modo in cui posso costringere gli utenti a usare sudo "./example" per eseguire un programma?
** il binario è un eseguibile linkato staticamente