#c #polkit #секурно #решето @rf @ua
opennet.ru/opennews/art.shtml?
> Так как счётчик аргументов не проверялся на соответствие фактическому содержимому массива и полагалось, что он всегда больше 1, в случае передачи процессу пустого массива argv, что допускает функция execve в Linux, pkexec воспринимал значение NULL как первый аргумент (имя процесса), а следующую за пределами буфера память, как далее идущее содержимое массива. Проблема в том, что следом за массивом argv в памяти размещается массив envp, содержащий переменные окружения.
> Получив значение argv[1], pkexec пытается с учётом файловых путей в PATH определить полный путь к исполняемому файлу и записать указатель на строку с полный путём обратно в argv[1]