Í veitunni , notað til að skipuleggja framkvæmd skipana fyrir hönd annarra notenda, varnarleysi (), sem gerir þér kleift að auka réttindi þín til rótarnotandans. Vandamálið hefur aðeins verið til staðar frá sudo 1.7.1 þegar valmöguleikinn "pwfeedback" er notaður í /etc/sudoers skránni, sem er sjálfgefið óvirkur en virkur í sumum dreifingum, eins og Linux Stýrikerfi Mint og Elementary. Vandamálið hefur verið lagað í útgáfunni. , birt fyrir nokkrum klukkustundum. Varnarleysið er óráðið í dreifingarsettum.
Valmöguleikinn „pwfeedback“ gerir kleift að sýna „*“ stafinn eftir hvern staf sem er sleginn inn þegar lykilorð er slegið inn. Vegna Í útfærslu getln() fallsins, sem er skilgreint í tgetpass.c skránni, gæti of stór lykilorðsstrengur sem sendur er í gegnum staðlaða inntaksstrauminn (stdin) við ákveðnar aðstæður ekki passað inn í úthlutað biðminni og skrifað yfir önnur gögn á staflanum. Yfirflæðið á sér stað þegar sudo kóða er keyrt sem rót.
Kjarni vandans er sá að þegar sérstafurinn ^U (línuhreinsun) er notaður við inntak og ef skrifaðgerðin mistekst, endurstillir kóðinn sem ber ábyrgð á því að hreinsa úttakið „*“ stafina gögnin um tiltæka biðminni, en gerir það ekki skilaðu bendilinum í upphafsgildið núverandi stöðu í biðminni. Annar þáttur sem stuðlar að hagnýtingu er skortur á sjálfvirkri slökkva á „pwfeedback“ ham þegar gögn berast ekki frá flugstöðinni, heldur í gegnum inntaksstrauminn (þessi galli gerir kleift að skapa skilyrði fyrir upptökuvillu, til dæmis á kerfum með einátta villa kemur upp þegar reynt er að skrifa í lok lesrásar).
Þar sem árásarmaður hefur fulla stjórn á yfirskrift gagna á staflanum er ekki erfitt að búa til hagnýtingu sem gerir honum kleift að auka réttindi sín til að róta. Vandamálið getur verið nýtt af hvaða notanda sem er, óháð sudo heimildum eða notendasértækum stillingum í sudoers. Til að loka fyrir vandamálið ættirðu að ganga úr skugga um að það sé engin „pwfeedback“ stilling í /etc/sudoers og, ef nauðsyn krefur, slökkva á henni („Sjálfgefið !pwfeedback“). Til að athuga hvort það sé vandamál geturðu keyrt kóðann:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S auðkenni
Lykilorð: Misskipting bilun
Heimild: opennet.ru
