Qualys har upptÀckt 9 sÄrbarheter i mandatstyrningssystemet AppArmor, dÀr de farligaste gör det möjligt för en lokal, icke-privilegerad anvÀndare att fÄ root-rÀttigheter pÄ systemet, att ta sig ur isolerade containrar och att kringgÄ begrÀnsningar som stÀllts in via AppArmor. SÄrbarheterna har kodnamnet CrackArmor. CVE-identifierare har Ànnu inte tilldelats. FramgÄngsrika exempel pÄ ökad privilegier har demonstrerats i Ubuntu 24.04 och Debian 13.
Problemen finns i LSM-modulen AppArmor sedan kÀrnan Linux 4.11, som slÀpptes 2017, och förekommer i distributioner som anvÀnder AppArmor, sÄsom Ubuntu, Debian, openSUSE och SUSE (frÄn och med openSUSE/SUSE 16 Àr SELinux aktiverat som standard, men AppArmor lÀmnas som ett alternativ). Patchar för att ÄtgÀrda sÄrbarheterna har skickats till utvecklarna av Linux-kÀrnan och kommer inom kort att erbjudas anvÀndare i form av uppdateringar 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 och 5.10.253. En fix har ocksÄ inkluderats i dagens paketuppdateringar för kÀrnan för Ubuntu. Samtidigt har uppdateringar slÀppts för paket som sudo, sudo-ldap och util-linux (som inkluderar verktyget su), dÀr brister som gjorde det möjligt att utnyttja sÄrbarheten i AppArmor har ÄtgÀrdats. I Debian Àr en uppdatering under förberedelse.
Problemen orsakas av en grundlÀggande sÄrbarhet i AppArmor av typen "förvirrad stÀllföretrÀdare" ("confused-deputy"), vilket gör det möjligt för icke-privilegerade anvÀndare att ladda upp, ersÀtta och ta bort godtyckliga profilmallar för AppArmor. Denna sÄrbarhet kan direkt anvÀndas för att stÀnga av skyddet av program och tjÀnster mot lokala och fjÀrrattacker (genom att skriva till pseudofiler /sys/kernel/security/apparmor/.load, .replace och .remove, till exempel för att ta bort begrÀnsningar i cupsd och rsyslogd), orsaka överbelastningar (genom anvÀndning av förhindrande profiler) och kringgÄ begrÀnsningar för namnrymd (genom att ladda ett nytt AppArmor-profil "userns", till exempel för /usr/bin/time, vilket gör att obegrÀnsade anvÀndarnamnrymder kan skapas).
Möjligheten att byta AppArmor-profiler möjliggör ocksÄ att man fÄr root-privilegier genom att binda nya profiler som blockerar Ätkomst till vissa systemanrop till privilegierade verktyg som su och sudo. Genom att blockera setuid-operationen (CAP_SETUID) för sudo-verktyget i kombination med manipulation av miljövariabeln MAIL_CONFIG för att byta katalog för e-postinstÀllningar kan man fÄ root-rÀttigheter. servern Postfix.
Metodens kÀrna Àr att nÀr det uppstÄr problem skickar sudo-verktyget ett meddelande till systemadministratören genom att köra /usr/sbin/sendmail. Genom att blockera privilegieförflyttning kan man fÄ den hÀr processen att köras med root-rettigheter, och genom att stÀlla in miljövariabeln MAIL_CONFIG innan man kör sudo kan man ge sendmail-verktyget andra instÀllningar, inklusive att ange sin egen postdrop-hanterare som körs vid sÀndning av e-post. $ 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 Lösenord: $ env -i MAIL_CONFIG=/tmp/postfix /usr/bin/sudo whatever sudo: PERM_SUDOERS: setresuid(-1, 1, -1): à tgÀrd inte tillÄten sudo: kan inte öppna /etc/sudoers: à tgÀrd inte tillÄten sudo: setresuid() [0, 0, 0] -> [1001, -1, -1]: à tgÀrd inte tillÄten sudo: fel vid initiering av audit-plugin sudoers_audit $ cat /tmp/postfix/pwned uid=0(root) gid=1001(jane) grupper=1001(jane),100(users)
Andra metoder för att höja privilegier inkluderar sÄrbarheter i AppArmor-koden som körs pÄ Linux-kÀrnnivÄ. Det visas hur man kan fÄ root-rettigheter genom sÄrbarheter orsakade av dubbel exekvering av funktionen free() och Ätkomst till redan frigjord minnesomrÄde (use-after-free) inom koden för att ladda och byta AppArmor-profiler. Till exempel sparar AppArmor profilen i strukturen aa_loaddata, dÀr minne allokeras i slab-cache kmalloc-192, och pÄ grund av ett tÀvlingslÀge utesluts inte Ätkomst till minnet som strukturen upptog efter att den har frigjorts. Detta problem kan utnyttjas för att fÄ kontroll över frigjord minne och omallokera den frigjorda minnessidan för att mappa innehÄllet i filen /etc/passwd och skriva över raden med root-lösenordet.
KĂ€lla: opennet.ru
