Shfrytëzimet në OpenSMTPD, të cilat lejojnë aksesin e plotë root në mënyrë të largët dhe lokale

Kompania Qualys ka identifikuar një tjetër dobësi kritike të largët (CVE-2020-8794) në serverin e postës , shumëpjesëshi i terminalit tekstual (analog i GNU screen), e zhvilluar nga projekti OpenBSD. Ashtu siç u zbulua në fund të janarit vulnerabiliteti, problemi i ri mundëson ekzekutimin e komandave të rastësishme shell në server me të drejtat e përdoruesit root. Dobësia i eliminuar në publikimin OpenSMTPD 6.6.4p1.

Problemi shkaktohet nga një gabim në kodin që menaxhon dërgimin e postës në një server të largët (jo në kodin që përpunon lidhjet e ardhshme). Sulmi është i mundur si nga ana e klientit, ashtu edhe nga ana e serverit. Nga ana e klientit, sulmi është i mundur në konfigurimin e OpenSMTPD me default, në të cilin OpenSMTPD pranon kërkesat vetëm në ndërfaqen e brendshme të rrjetit (localhost) dhe dërgon mesazhe postare në servera të jashtëm. Për të shfrytëzuar dobësinë, mjafton që gjatë dërgimit të një letre, OpenSMTPD të vendosë një sesion me një server të postës të kontrolluar nga sulmuesi, ose që sulmuesi të mund të ndërhyjë në lidhjen e klientit (MITM ose redirektim gjatë sulmeve përmes DNS ose BGP).

Për të sulmuar nga ana e serverit, është e nevojshme që OpenSMTPD të jetë i konfiguruar për të pranuar kërkesa të jashtme të rrjetit nga servera të tjerë të postës ose të shërbejë shërbime të jashtme që lejojnë dërgimin e një kërkese për email të rastësishëm (p.sh. forma të konfirmimit të adresës në website). Për shembull, një sulmues mund të lidhet me serverin OpenSMTPD dhe të dërgojë një letër të papërshtatshme (për një përdorues që nuk ekziston), e cila do të shoqërohet me një mesazh gabimi (bounce) që kthehet në serverin e sulmuesit. Sulmuesi mund të shfrytëzojë dobësinë në momentin kur OpenSMTPD lidhet për të dërguar një njoftim në serverin e sulmuesit. Komandat shell të infiluara gjatë sulmit vendosen në një skedar që ekzekutohet me të drejtat e root në rindizjen e OpenSMTPD, kështu që sulmuesi për të përfunduar sulmin duhet të presë rindizjen e OpenSMTPD ose të nxisë dështimin e tij.

Problemi Ă«shtĂ« i pranishĂ«m nĂ« funksionin mta_io() nĂ« kodin pĂ«r analizimin e pĂ«rgjigjeve me shumĂ« rreshta qĂ« kthehen nga serveri i largĂ«t pas vendosjes sĂ« lidhjes (p.sh., "250-ENHANCEDSTATUSCODES" dhe "250 HELP"). NĂ« OpenSMTPD supozohen se rreshti i parĂ« pĂ«rmban njĂ« numĂ«r tre shifror dhe tekst, tĂ« ndara me simbolin "-", ndĂ«rsa rreshti i dytĂ« pĂ«rmban njĂ« numĂ«r tre shifror dhe tekst, tĂ« ndara me njĂ« hapĂ«sirĂ«. NĂ«se pas numrit tre shifror nĂ« rreshtin e dytĂ« nuk ka hapĂ«sirĂ« dhe tekst, treguesi qĂ« pĂ«rdoret pĂ«r tĂ« pĂ«rkufizuar tekstin vihet nĂ« bajtin qĂ« vjen pas simbolit ‘\0’ dhe bĂ«het njĂ« pĂ«rpjekje pĂ«r tĂ« kopjuar nĂ« tamponin e tĂ« dhĂ«nave qĂ« vijnĂ« pas fundit tĂ« rreshtit.

Me kërkesën e projektit OpenBSD, publikimi i detajeve për shfrytëzimin e dobësisë është shtyrë deri më 26 shkurt, për t'u dhënë përdoruesve mundësinë për të përditësuar sistemet e tyre. Problemi është i pranishëm në bazën e kodit që nga dhjetori 2015, por shfrytëzimi deri në ekzekutimin e kodit me të drejtat e root është i mundur që nga maji 2018. Kërkuesit kanë përgatitur një prototip funksional të shfrytëzimit, i cili është testuar me sukses në ndërtimet e OpenSMTPD për OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (testing) dhe Fedora 31.

Në OpenSMTPD gjithashtu u identifikua një tjetër dobësi (CVE-2020-8793), e cila lejon një përdorues lokal të lexojë rreshtin e parë të çdo skedari në sistem. Për shembull, mund të lexoni rreshtin e parë /etc/master.passwd, ku është vendosur hash-i i fjalëkalimit të përdoruesit root. Dobësia gjithashtu lejon të lexoni të gjithë përmbajtjen e një skedari që i përket një përdoruesi tjetër, nëse ky skedar ndodhet në të njëjtën sisteme me katalogun /var/spool/smtpd/. Problemi nuk është i shfrytëzueshëm në shumë distribucione Linux, ku vlera /proc/sys/fs/protected_hardlinks është vendosur në 1.

Problemi është rezultat i eliminimit të paplotë problemeve, të shprehur gjatë auditorit të kryer nga Qualys në vitin 2015. Sulmuesi mund të arrijë ekzekutimin e kodit të tij me të drejtat e grupit "_smtpq", duke vendosur variablin "PATH=." dhe duke vendosur në katalogun aktual një skenar me emrin makemap (utilita smtpctl e ekzekuton makemap pa specifikuar qartë rrugën). Pasi të ketë akses në grupin "_smtpq", sulmuesi mund të thërrasë një gjendje garuese (të krijojë një skedar të madh në katalogun offline dhe të dërgojë sinjalin SIGSTOP) dhe, përpara përfundimit të përpunimit, të zëvendësojë skedarin në katalogun offline me një lidhje të fortë simbolike që tregon në skedarin që duhet lexuar.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se nĂ« Fedora 31 dobĂ«sia lejon menjĂ«herĂ« marrjen e privilegjeve tĂ« grupit root, pasi procesi smtpctl Ă«shtĂ« i pajisur me flamurin setgid root, nĂ« vend tĂ« setgid smtpq. Pasi tĂ« ketĂ« akses nĂ« grupin root, mund tĂ« ri-shkruajĂ« pĂ«rmbajtjen e /var/lib/sss/mc/passwd dhe tĂ« fitojĂ« qasje tĂ« plotĂ« root nĂ« sistem.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster