what's to stop an attacker from compiling their own custom sudo binary that allows it to execute with any uid?
C'è un malinteso di base in corso qui. Il programma si esegue, si ferma solo quando si accorge che non è in esecuzione come utente root. Ricompilare il programma per rimuovere il controllo consentirebbe solo di eseguire l'attività come utente che ha eseguito sudo, non root. In altre parole, il controllo per l'esecuzione come root in sudo è solo un controllo degli errori e una diagnostica, non una funzionalità di sicurezza.
L'equivoco è che i programmi non hanno alcuna abilità speciale da eseguire come un altro utente, il privilegio extra è una proprietà dei permessi del file sul file. Qualsiasi programma con setuid bit set verrà eseguito come proprietario del file. Se dovessi compilare il tuo programma, il file sarà di tua proprietà. Mentre è consentito impostare il bit setuid sul proprio file, non è possibile modificare la proprietà del file senza privilegi extra. Quindi impostare il bit setuid consentirebbe ad altri di eseguire il tuo programma come se stessi.