Ва ўтыліце
Опцыя "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