Haavatavused AppArmoris, mis võimaldavad käitusaja root-juurdepääsu

Qualys tuvastas AppArmor'i mandaatjuhtimise süsteemis 9 haavatavust, millest kõige ohtlikumad võimaldavad kohalikel priviligeerimata kasutajatel saada süsteemis root-käigud, pääseda isoleeritud konteineritest välja ja mööda minna AppArmor'i kaudu kehtestatud piirangutest. Haavatavused said koodnimeks CrackArmor. CVE-identifikaatoreid pole veel määratud. Edukalt demonstreeritud kõrgendatud privileegide näited on nähtavad Ubuntu 24.04 ja Debian 13-s.

Probleemid esinevad AppArmor'i LSM moodulis alates Linuxi kernelist 4.11, mis ilmus 2017. aastal, ning avalduvad jaotustes, mis kasutavad AppArmor'it, nagu Ubuntu, Debian, openSUSE ja SUSE (openSUSE/SUSE 16-s on vaikimisi rakendatud SELinux, kuid AppArmor on jäetud valikuks). Haavatavustest vabanemise plaastrid on edastatud Linuxi kernelite arendajatele ning lähiajal pakutakse kasutajatele uuendusi versioonides 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 ja 5.10.253. Parandus on samuti kaasatud tänastesse kernelipaketiga seotud uuendustesse Ubuntu jaoks. Samuti on Ubuntu's välja antud uuendused paketidele sudo, sudo-ldap ja util-linux (mille hulka kuulub utiliit su), kus on kõrvaldatud puudujäägid, mis võimaldasid haavatavust AppArmor'is ekspluateerida. Debianis on uuendus veel ettevalmistamisel.

Probleemid tulenevad AppArmor'i fundamentaalsest haavatavusest, mida nimetatakse «confused-deputy» (segaduses vahendaja), mis lubab privileege mitteomavatel kasutajatel laadida, asendada ja kustutada meelevaldseid AppArmor'i profiile. Seda haavatavust saab kasutada otse programmide ja teenuste kaitse keelamiseks kohalike ja eemaltegevate rünnakute eest (näiteks failide /sys/kernel/security/apparmor/.load, .replace ja .remove kaudu piirangute eemaldamiseks cupsd ja rsyslogd's), teenuse katkestamise põhjustamiseks (keelatud profiilide rakendamise kaudu) ja nimede ruumide piirangute ületamiseks (nt uue AppArmor'i profiili «userns» laadimise kaudu, mis on mõeldud /usr/bin/time jaoks, võimaldades luua piiramatu user namespace).

Possibility to replace AppArmor profiles also allows gaining root privileges by binding new profiles that block access to certain system calls to privileged utilities like su and sudo. Specifically, root access can be obtained by blocking the setuid operation (CAP_SETUID) for the sudo utility combined with manipulating the MAIL_CONFIG environment variable to change the directory containing settings for the mail. serverile Postfix.

Meetod seisneb selles, et probleemide korral saadab utiliit sudo administraatorile e-kirja, käivitades /usr/sbin/sendmail. Blokeerides privileegide tühistamise, saab käivitada selle protsessi root-käikudega, ja määrates enne sudo käivitamist keskkonnamuutuja MAIL_CONFIG, saab edastada utiliidile sendmail teisi seadeid, sealhulgas määrata oma postdrop töötleja, mis käivitatakse e-kirjade saatmisel. $ mkdir /tmp/postfix $ cat > /tmp/postfix/main.cf < /tmp/postfix/postdrop <> /tmp/postfix/pwned EOF $ chmod -R 0755 /tmp/postfix $ apparmor_parser -K -o sudo.pf < /sys/kernel/security/apparmor/.replace Password: $ env -i MAIL_CONFIG=/tmp/postfix /usr/bin/sudo whatever sudo: PERM_SUDOERS: setresuid(-1, 1, -1): Operation not permitted sudo: unable to open /etc/sudoers: Operation not permitted sudo: setresuid() [0, 0, 0] -> [1001, -1, -1]: Operation not permitted sudo: error initializing audit plugin sudoers_audit $ cat /tmp/postfix/pwned uid=0(root) gid=1001(jane) groups=1001(jane),100(users)

Muude kõrgendatud privileegide saamise viiside hulgas mainitakse Linuxi tuuma tasandil töötava AppArmor'i koodi haavatavusi. Näidatakse, kuidas saada root-käike haavatavuste abil, mis on põhjustatud free() funktsiooni topeltkäivitamisest ja juba vabastatud mälu alale puudutamisest (use-after-free) AppArmor'i profiilide laadimise ja asendamise koodis. Näiteks salvestab AppArmor profiili struktuuri aa_loaddata, mille mälu eraldatakse slab-kohvris kmalloc-192, samas ei saa välja jätta võidusõidutingimust, kui juurdepääs on mälule, mida struktuur kasutas, pärast selle vabastamist. Seda probleemi saab kasutada kontrolli saavutamiseks vabastatud mälu üle ja vabastatud mälulehekülje ümbersuunamiseks, mis lubab kaardistada faili /etc/passwd sisu ja üle kirjutada root paroolirea.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster