Root ievainojamība sudo, kas skar Linux Mint un Elementary OS

RÄ«kā sudo, kas tiek izmantota, lai organizētu komandu izpildi citu lietotāju vārdā, identified vaina (CVE-2019-18634), ļaujot paaugstināt savas privilēģijas sistēmā lÄ«dz root lietotājam. Problēma rodas sākot ar sudo 1.7.1 izlaidumu tikai tad, kad tiek izmantota opcija Ā«pwfeedbackĀ» failā /etc/sudoers, kas noklusējuma ir izslēgta, bet aktivizēta dažos izplatÄ«jumos, piemēram, Linux Mint un Elementary OS. Problēma ir novērsta izlaidumā sudo 1.8.31, kas tika publicēts pirms dažām stundām. IzplatÄ«jumos ievainojamÄ«ba vēl nav novērsta.

Opcija Ā«pwfeedbackĀ» aktivizē zvaigznÄ«tes Ā«*Ā» rādīŔanu pēc katra ievadÄ«tā simbola, kad tiek ievadÄ«ta parole. Dēļ kļūdām fункcijas getln(), kas definēta failā tgetpass.c, ja caur standarta ieejas plÅ«smu (stdin) tiek nodota pārāk liela paroles virkne noteiktos apstākļos, tā var nepietikt iepriekÅ” pieŔķirtajai buferim un pārrakstÄ«t citus datus stekā. Pārspriegums notiek, izpildot sudo kodu ar root privilēģijām.

Problēmas bÅ«tÄ«ba ir tāda, ka, lietojot speciālos simbolus ^U (rindas tÄ«rīŔana) ievades procesā un rakstīŔanas operācijas kļūmes gadÄ«jumā, kods, kas atbild par izvadÄ«to simbolu Ā«*Ā» tÄ«rīŔanu, atsakās no pieejamā bufera lieluma datiem, bet neatgriež iepriekŔējo pozÄ«ciju buferÄ«. Vēl viens faktors, kas veicina exploitu izveidi, ir automātiskā Ā«pwfeedbackĀ» režīma atslēgÅ”anas trÅ«kums datu ienākÅ”anas gadÄ«jumā ne no termināla, bet caur ieejas plÅ«smu (Ŕī nepilnÄ«ba rada iespējas rakstīŔanas kļūmēm, piemēram, sistēmās ar vienvirziena neapzÄ«mētiem kanāliem kļūda rodas, mēģinot ierakstÄ«t aiz lasīŔanas kanāla beigām).

Tā kā uzbrucējs var pilnÄ«bā kontrolēt datu pārrakstīŔanu stekā, nav grÅ«ti izveidot exploitu, kas ļauj paaugstināt priviligijas lÄ«dz root lietotājam. Problēmu var izmantot jebkurÅ” lietotājs, neatkarÄ«gi no piekļuves tiesÄ«bām uz sudo un lietotājam specifiskajām iestatÄ«jumiem sudoers. Lai novērstu problēmu, jāpārliecinās, vai failā /etc/sudoers nav iestatÄ«juma Ā«pwfeedbackĀ» un nepiecieÅ”amÄ«bas gadÄ«jumā to jāatslēdz (Ā«Defaults !pwfeedbackĀ»). Problēmas pārbaudei var izpildÄ«t kodu:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Parole: Segmentācijas kļūda

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster