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