Komunalinėje programoje
Parinktis „pwfeedback“ leidžia rodyti „*“ simbolį po kiekvieno įvesto simbolio įvedant slaptažodį. Dėl
Problemos esmė ta, kad įvedimo metu naudojant specialųjį simbolį ^U (eilutės išvalymas) ir jei rašymo operacija nepavyksta, kodas, atsakingas už išvesties „*“ simbolių išvalymą, iš naujo nustato duomenis apie turimą buferio dydį, bet ne. grąžinkite žymeklį į pradinės reikšmės dabartinę padėtį buferyje. Kitas veiksnys, prisidedantis prie išnaudojimo yra tai, kad nėra automatinio „pwfeedback“ režimo išjungimo, kai duomenys gaunami ne iš terminalo, o per įvesties srautą (šis trūkumas leidžia sudaryti sąlygas įrašymo klaidai atsirasti, pavyzdžiui, sistemose su vienakryptis
Kadangi užpuolikas visiškai kontroliuoja duomenų perrašymą dėtuvėje, nėra sunku sukurti išnaudojimą, leidžiantį jam išplėsti savo teises į root. Problema gali pasinaudoti bet kuris vartotojas, neatsižvelgiant į sudo leidimus ar konkrečius vartotojo nustatymus sudoer. Norėdami užblokuoti problemą, įsitikinkite, kad /etc/sudoers nėra „pwfeedback“ nustatymo ir, jei reikia, jį išjunkite („Numatytieji !pwfeedback“). Norėdami patikrinti, ar yra problemų, galite paleisti kodą:
$ perl -e ‘spausdinti(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Slaptažodis: segmentavimo klaida
Šaltinis: opennet.ru