Проблема проявляется начиная с выпуска sudo 1.9.16 и вызвана использованием в отдельных случаях функции killpg() вместо kill() для завершения дочернего процесса. В отличие от функции kill() функция killpg() отправляет сигнал группе процессов, но в качестве группы может обрабатывать значения больше или равные 0. При передаче отрицательного значения группы поведение не определено и в некоторых системах может приводить к отправке сигнала процессу с номером 1 (init) и завершению работы всех процессов в системе.
В sudo может возникнуть ситуация, когда при запуске команды в псевдотерминале (PTY) команда не может быть корректно запущена и вместо PID библиотечные функции возвращают код ошибки «-1».
Для отзыва доступа к терминалу в sudo запускается функция revoke_pty, которая использует в качестве идентификатора группы PID процесса при вызове функции killpg без должного анализа возвращённого ранее кода ошибки, что приводит в итоге к выполнению «killpg(-1, SIGHUP)».
Кроме того, в sudo исправлена проблема, приводящая к сбою при перехвате и проверке запускаемых команд в конфигурациях, использующих опции intercept и intercept_verify в файле sudoers. В Linux-системах, поддерживающих функцию ptrace_readv_string(), наблюдалось аварийное завершение процессов, размер аргументов командной строки или переменных окружения у которых превышал размер страницы памяти (обычно 4096 байт).
Источник: http://www.opennet.ru/opennews/art.shtml?num=63633