Dobësitë në AppArmor, që lejojnë akses root në sistem

Kompania Qualys zbuloi 9 vulnerabilitete në sistemin e menaxhimit të detyrueshëm të aksesit AppArmor, më të rrezikshmet prej të cilave lejojnë një përdorues lokal pa privilegje të fitojë të drejtat root në sistem, të dalë nga kontejnerët e izoluar dhe të anashkalojë kufizimet e vendosura përmes AppArmor. Vulnerabilitetet morën emrin kodor CrackArmor. Identifikuesit CVE ende nuk janë caktuar. Shembuj të suksesshëm të rritjes së privilegjeve u demonstruan në Ubuntu 24.04 dhe Debian 13.

Problemet janë të praniçme në modul LSM të AppArmor që nga bërthama Linux 4.11, e lëshuar në vitin 2017, dhe shfaqen në distribucione të cilat përdorin AppArmor, si Ubuntu, Debian, openSUSE dhe SUSE (nga openSUSE/SUSE 16, SELinux është aktivizuar si standard, por AppArmor është lënë si opsion). Patch-at për zgjidhjen e vulnerabiliteteve janë dërguar zhvilluesve të bërthamës Linux dhe në ditët në vijim do t'u propozohet përdoruesve në përbërjen e përditësimeve 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 dhe 5.10.253. Një rregullim është gjithashtu përfshirë në përditësimet e sotme të pakove me bërthamë për Ubuntu. Po ashtu, në Ubuntu janë lëshuar përditësime të pakove sudo, sudo-ldap dhe util-linux (ku nënkuptohet utilita su) që rregullojnë mangësi, të cilat lejonin përfitimin nga vulnerabiliteti në AppArmor. Përditësimi në Debian është në proces përgatitjeje.

Problemet janë shkaktuar nga prania në AppArmor e një vulnerabiliteti themelor të klasës «përfaqësuesi i mashtruar» (»confused-deputy«), që lejon përdoruesit pa privilegje të ngarkojnë, zëvendësojnë dhe fshijnë profile të ndryshme të AppArmor. Ky vulnerabilitet mund të përdoret drejtpërdrejt për të çaktivizuar mbrojtjen e programeve dhe shërbimeve nga sulme lokale dhe të largëta (përmes shkrimit në pseudo skedarët /sys/kernel/security/apparmor/.load, .replace dhe .remove, për shembull, për të hequr kufizimet në cupsd dhe rsyslogd), të shkaktojë një mohimi shërbimi (përmes përdorimit të profileve ndaluese) dhe anashkalimin e kufizimeve të hapësirave emëruese (përmes ngarkimit të një profili të ri AppArmor «userns», për shembull, për /usr/bin/time, duke lejuar krijimin e hapësirave të papërmbajtura të përdoruesve).

Mundësia e zëvendësimit të profileve të AppArmor gjithashtu lejon që të fitohet privilegji root përmes lidhjes me utilitat e privilegjuara, si su dhe sudo, profile të reja që bllokojnë aksesin në thirrjet sistemore të caktuara. Në veçanti, të drejtat root mund të fitohen duke bllokuar operacionin setuid (CAP_SETUID) për utilitarin sudo në kombinim me manipulimin e variablës së ambientit MAIL_CONFIG për të ndryshuar katalogun me konfigurimet për postën. server Postfix.

Thelbi i metodës është ai që, kur ndodhin probleme, utilitari sudo i dërgon një email administratorit, duke ekzekutuar /usr/sbin/sendmail. Duke bllokuar rihapjen e privilegjeve, mund të sigurohet që ky proces të ekzekutohet me të drejtat root, dhe duke vendosur para ekzekutimit të sudo variablin e ambientit MAIL_CONFIG, mund të i kaloni utilitarit sendmail konfigurime të tjera, përfshirë përcaktimin e trajtuesit të vet postdrop, i cili aktivizohet gjatë dërgimit të postës. $ 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 Fjalëkalimi: $ env -i MAIL_CONFIG=/tmp/postfix /usr/bin/sudo whatever sudo: PERM_SUDOERS: setresuid(-1, 1, -1): Operacioni nuk lejohet sudo: e pamundur të hapet /etc/sudoers: Operacioni nuk lejohet sudo: setresuid() [0, 0, 0] -> [1001, -1, -1]: Operacioni nuk lejohet sudo: gabim duke inicializuar pluginin audit sudoers_audit $ cat /tmp/postfix/pwned uid=0(root) gid=1001(jane) grupet=1001(jane),100(users)

Si mënyra të tjera për rritjen e privilegjeve përmenden vulnerabilitetet në kodin e AppArmor, që operon në nivelin e bërthamës Linux. Tregohet si mund të fitohet të drejta root përmes vulnerabiliteteve të shkaktuara nga ekzekutimi i dyfishtë të funksionit free() dhe qasjes në një zonë memorjeje të liruar tashmë (use-after-free) në kodin e ngarkimit dhe zëvendësimit të profileve të AppArmor. Për shembull, AppArmor ruan profilin në strukturën aa_loaddata, memoria për të cilën ndahen në slab-cache kmalloc-192, por për shkak të një gjendjeje garuese, nuk përjashtohet që të ketë qasje në memorjen që zuri struktura pas lirimit të saj. Ky problem mund të shfrytëzohet për të marrë kontroll mbi memorjen e liruar dhe për të ripërshtatur faqen e liruar të memorjes për hartimin e përmbajtjes së skedarit /etc/passwd dhe për të rishkruar rreshtin me fjalëkalimin e root.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster