В утиліті
Опція pwfeedback включає відображення символу * після кожного введеного символу під час введення пароля. Через
Суть проблеми в тому, що при використанні в процесі введення спецсимволу ^U (очищення рядка) і при збої операції запису код, що відповідає за очищення виведених символів «*», скидає дані про доступний розмір буфера, але не повертає у вихідне значення покажчик на поточну позицію у буфері. Іншим фактором, що сприяє експлуатації, є відсутність автоматичного відключення режиму pwfeedback при надходженні даних не з терміналу, а через вхідний потік (дана недоробка дозволяє створити умови для виникнення помилки запису, наприклад, на системах з односпрямованими
Так як атакуючий може повністю контролювати перезапис даних у стеку, не становить труднощі створення експлоїту, що дозволяє підвищити свої привілеї користувача root. Проблема може бути експлуатована будь-яким користувачем, незалежно від прав на використання sudo та наявності специфічних для користувача налаштувань у sudoers. Для блокування проблеми слід переконатися у відсутності /etc/sudoers налаштування «pwfeedback» і при необхідності відключити її («Defaults !pwfeedback»). Для перевірки наявності проблеми можна виконати код:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Password: Segmentation fault
Джерело: opennet.ru