Sårbarheder i AppArmor, der muliggør root-adgang til systemet

Qualys har identificeret 9 sårbarheder i AppArmor's mandatoriske adgangsstyringssystem, hvoraf de mest kritiske muliggør, at en lokal, ikke-privilegeret bruger kan få root-rettigheder på systemet, bryde ud af isolerede containere og omgå de restriktioner, der er fastsat gennem AppArmor. Sårbarhederne har fået kodeordet CrackArmor. CVE-identifikatorer er endnu ikke tildelt. Succesfulde eksempler på, at privilegier hæves, er blevet demonstreret i Ubuntu 24.04 og Debian 13.

Problemerne findes i AppArmor's LSM-modul fra Linux-kernen 4.11, der blev udgivet i 2017, og viser sig i distributioner, der bruger AppArmor, såsom Ubuntu, Debian, openSUSE og SUSE (fra openSUSE/SUSE 16 er SELinux aktiveret som standard, men AppArmor er stadig tilgængeligt som et valg). Patchede med løsninger til sårbarhederne er sendt til udviklerne af Linux-kernen og vil i de kommende dage blive tilbudt brugerne i opdateringerne 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 og 5.10.253. Rettelsen er også inkluderet i dagens kernepakkeopdateringer for Ubuntu. Desuden er der udgivet opdateringer af pakkerne sudo, sudo-ldap og util-linux (som inkluderer værktøjet su), hvor der er blevet rettet fejl, der kunne udnytte sårbarheden i AppArmor. Opdateringen til Debian er under forberedelse.

Problemerne skyldes en grundlæggende sårbarhed i AppArmor af typen "forvirret stedfortræder" ("confused-deputy"), der tillader ikke-privilegerede brugere at indlæse, erstatte og slette vilkårlige AppArmor-profiler. Denne sårbarhed kan direkte udnyttes til at deaktivere beskyttelsen af programmer og tjenester mod lokale og eksterne angreb (f.eks. ved at skrive til pseudofilerne /sys/kernel/security/apparmor/.load, .replace og .remove for at fjerne begrænsninger i cupsd og rsyslogd), forårsage tjenestenægtelse (ved at anvende forbudte profiler) og omgå namespaces (ved at indlæse en ny AppArmor-profil "userns", f.eks. for /usr/bin/time, der muliggør oprettelse af ubegrænsede user namespaces).

Muligheden for at ændre AppArmor-profiler gør det også muligt at opnå root-rettigheder ved at binde nye profiler, der blokerer adgangen til nogle systemopkald, til privilegerede værktøjer som su og sudo. Især kan root-rettigheder opnås ved at blokere setuid-operationen (CAP_SETUID) for sudo-værktøjet i kombination med manipulation af miljøvariablen MAIL_CONFIG for at ændre kataloget med indstillingerne til mailen. server Postfix.

Essensen af metoden er, at når der opstår problemer, sender sudo-værktøjet en mail til administratoren ved at starte /usr/sbin/sendmail. Ved at blokere nedtrapning af privilegier kan denne proces startes med root-rettigheder, og ved at sætte miljøvariablen MAIL_CONFIG før start af sudo kan man overføre andre indstillinger til sendmail-værktøjet, inklusive at angive sin egen postdrop-behandler, der startes ved sending af mails. $ 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 Adgangskode: $ 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) grupper=1001(jane),100(users)

Andre metoder til at opnå forhøjede rettigheder inkluderer sårbarheder i AppArmor-koden, der kører på Linux-kernens niveau. Det er vist, hvordan man kan opnå root-rettigheder ved hjælp af sårbarheder forårsaget af dobbelt udførelse af funktionen free() og adgang til allerede frigivet hukommelse (use-after-free) i koden til indlæsning og ændring af AppArmor-profiler. For eksempel gemmer AppArmor profilen i strukturen aa_loaddata, hvor hukommelsen allokeres i slab-cache kmalloc-192, og på grund af race-forhold er det ikke udelukket at få adgang til den hukommelse, som strukturen indtog, efter den er frigivet. Dette problem kan udnyttes til at få kontrol over den frigivne hukommelse og genfordele den frigivne hukommelsesside for at mappe indholdet af filen /etc/passwd og overskrive root-adgangskoden.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster