LietderÄ«bÄ , ko izmanto, lai organizÄtu komandu izpildi citu lietotÄju vÄrdÄ, ievainojamÄ«ba (), kas ļauj jums pieŔķirt savas privilÄÄ£ijas root lietotÄjam. ProblÄma pastÄv kopÅ” sudo 1.7.1 versijas, tikai izmantojot opciju "pwfeedback" failÄ /etc/sudoers, kas pÄc noklusÄjuma ir atspÄjota, bet ir iespÄjota dažÄs versijÄs, piemÄram, Linux Mint un Elementary OS. ProblÄma ir novÄrsta Å”ajÄ laidienÄ. , publicÄts pirms dažÄm stundÄm. IevainojamÄ«ba joprojÄm nav labota izplatÄ«tajos izdevumos.
Opcija "pwfeedback" ļauj parÄdÄ«t simbolu "*" pÄc katras ievadÄ«tÄs rakstzÄ«mes, ievadot paroli. SakarÄ ar IevieÅ”ot tgetpass.c failÄ definÄto getln() funkciju, pÄrÄk liela paroles virkne, kas nodota caur standarta ievades plÅ«smu (stdin), noteiktos apstÄkļos var neietilpt pieŔķirtajÄ buferÄ« un pÄrrakstÄ«t citus datus kaudzÄ. PÄrpilde rodas, izpildot sudo kodu ar root privilÄÄ£ijÄm.
ProblÄmas bÅ«tÄ«ba ir tÄda, ka, ievades procesÄ izmantojot speciÄlo rakstzÄ«mi ^U (rindas tÄ«rīŔana) un ja rakstīŔanas operÄcija neizdodas, kods, kas atbild par izejas rakstzÄ«mju "*" tÄ«rīŔanu, atiestata datus uz pieejamo bufera izmÄru, bet neatgriež rÄdÄ«tÄju uz paÅ”reizÄjo pozÄ«ciju buferÄ« tÄ sÄkotnÄjÄ vÄrtÄ«bÄ. VÄl viens faktors, kas veicina izmantoÅ”anu, ir "pwfeedback" režīma automÄtiskas atspÄjoÅ”anas trÅ«kums, kad dati tiek saÅemti nevis no terminÄļa, bet gan caur ievades plÅ«smu (Å”is trÅ«kums ļauj radÄ«t apstÄkļus rakstīŔanas kļūdas raÅ”anÄs, piemÄram, sistÄmÄs ar vienvirziena Kļūda rodas, mÄÄ£inot rakstÄ«t pÄc lasīŔanas kanÄla beigÄm).
TÄ kÄ uzbrucÄjam ir pilnÄ«ga kontrole pÄr datu pÄrrakstīŔanu kaudzÄ, ir viegli izveidot ievainojamÄ«bu, lai pieŔķirtu root tiesÄ«bas. Å o problÄmu var izmantot jebkurÅ” lietotÄjs neatkarÄ«gi no sudo atļaujÄm vai lietotÄjam specifiskiem iestatÄ«jumiem sudoers. Lai novÄrstu Å”o problÄmu, pÄrliecinieties, vai iestatÄ«jums "pwfeedback" nav iekļauts /etc/sudoers, un, ja nepiecieÅ”ams, atspÄjojiet to ("Defaults !pwfeedback"). Lai pÄrbaudÄ«tu problÄmu, palaidiet Å”o kodu:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Parole: SegmentÄcijas kļūme
Avots: opennet.ru
