Я работаю над корневым двоичным файлом 'app' SUID, который запускает системную команду ("ls -la / dir") и сумел ее использовать, написав вредоносный ls для получения root и изменив путь среды моего пользователя для его установки с более высоким приоритетом, чем у ядра.
Я заметил, что выполнение его, когда пользователь возвращает мне оболочку root, при выполнении с помощью sudo "./example" использует путь root и просто перечисляет файлы в dir. Насколько я знаю, setuid наследует привилегии владельца (в данном случае root) пользователю, а sudo выполняется как root.
Как называются такие уязвимости? Как разработчик приложения исправит это? Есть ли способ заставить пользователя использовать sudo ./app для выполнения программы?