Dobësia e rrënjës në sudo që ndikon Linux Mint dhe OS Elementary

Në shërbimin publik sudo, përdoret për të organizuar ekzekutimin e komandave në emër të përdoruesve të tjerë, identifikuar cenueshmëria (CVE-2019-18634), e cila ju lejon të përshkallëzoni privilegjet tuaja te përdoruesi rrënjë. Problemi ka qenë i pranishëm që nga sudo 1.7.1 vetëm kur përdoret opsioni "pwfeedback" në skedarin /etc/sudoers, i cili është i çaktivizuar si parazgjedhje, por i aktivizuar në disa shpërndarje, si p.sh. Linux Mint dhe Elementary OS. Problemi është rregulluar në version. sudo 1.8.31, publikuar disa orë më parë. Dobësia mbetet e paarnuar në shpërndarje.

Opsioni "pwfeedback" mundëson shfaqjen e simbolit "*" pas çdo karakteri të futur gjatë futjes së një fjalëkalimi. Për shkak të gabimet Në implementimin e funksionit getln() të përcaktuar në skedarin tgetpass.c, një varg fjalëkalimesh i tejmadhësuar i kaluar nëpërmjet rrjedhës standarde të hyrjes (stdin) mund të mos futet në buffer-in e alokuar dhe të mbishkruajë të dhëna të tjera në pirg. Mbikalimi ndodh kur ekzekutohet kodi sudo me privilegje root.

Thelbi i problemit është se kur përdoret karakteri special ^U (pastrimi i rreshtit) gjatë procesit të hyrjes dhe nëse operacioni i shkrimit dështon, kodi përgjegjës për pastrimin e karaktereve të daljes "*" rivendos të dhënat në madhësinë e disponueshme të buffer-it, por nuk e kthen treguesin në pozicionin aktual në buffer në vlerën e tij origjinale. Një faktor tjetër që kontribuon në shfrytëzim është mungesa e çaktivizimit automatik të modalitetit "pwfeedback" kur të dhënat nuk merren nga terminali, por përmes rrjedhës së hyrjes (kjo e metë lejon krijimin e kushteve për shfaqjen e një gabimi shkrimi, për shembull, në sisteme me një drejtim). tuba pa emër Gabimi ndodh kur përpiqeni të shkruani përtej fundit të kanalit të leximit).

Meqenëse një sulmues ka kontroll të plotë mbi mbishkrimin e të dhënave në stack, është e lehtë të krijohet një shfrytëzim për të përshkallëzuar privilegjet e tyre në root. Ky problem mund të shfrytëzohet nga çdo përdorues, pavarësisht lejeve sudo ose cilësimeve specifike të përdoruesit në sudoers. Për të parandaluar këtë problem, sigurohuni që cilësimi "pwfeedback" të mos jetë i pranishëm në /etc/sudoers dhe, nëse është e nevojshme, çaktivizoni atë ("Parazgjedhjet !pwfeedback"). Për të testuar problemin, ekzekutoni kodin e mëposhtëm:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Fjalëkalimi: Gabim segmentimi

Burimi: opennet.ru

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster