Kohalikud root-haavatavused Snap pakettide haldamise tööriistades

Qualys avastas kaks haavatavust (CVE-2021-44731, CVE-2021-44730) snap-confine utiliidis, mis on tarnitud SUID rooti lipuga ja kutsutakse välja snapd protsessi poolt, et moodustada täitmislood keskkond rakendustele, mis on tarnitud iseseisvates pakettides snap formaadis. Haavatavused võimaldavad kohalikul mitteprivileegitud kasutajal saavutada koodi täitmise õigustega root süsteemis. Probleemid on kõrvaldatud täna välja antud snapd pakettide uuenduses Ubuntu 21.10, 20.04 ja 18.04 jaoks.

Esimene haavatavus (CVE-2021-44730) võimaldab rünnata kõvade linkide manipuleerimise kaudu, kuid nõuab süsteemi kaitse kõvade linkide välja lülitamist (sysctl fs.protected_hardlinks seadistamine väärtusele 0). Probleem tuleneb vale kontrolli poole teostamisest Snapi abiprogrammide snap-update-ns ja snap-discard-ns asukoha osas, mis käivitatakse root õigustes. Nende failide tee arvutati funktsioonis sc_open_snapd_tool() praegusest teest /proc/self/exe, mis võimaldab luua kõva lingi snap-confine'i oma katalooge ja paigutada sellesse katalooge enda versioonid utiliitidest snap-update-ns ja snap-discard-ns. Pärast kõva lingi kasutamist käivitab snap-confine root õigustes praegusest kataloogist ründaja esitatud snap-update-ns ja snap-discard-ns failid.

Teine haavatavus on tingitud võistlusharjumusest ja võib edasi anda Ubuntu Desktopi vaikeseades. Eduka ekspluateerimise jaoks Ubuntu Serveris on vajalik installimisel valida üks pakett jaotises "Featured Server Snaps". Võistlusharjumus ilmneb funktsioonis setup_private_mount(), mida kutsutakse üles mountimise nimede vööndi ettevalmistamise ajal snap-pakettide jaoks. See funktsioon loob ajutise katalooge "/tmp/snap.$SNAP_NAME/tmp" või kasutab juba olemasolevat katalooge selle paketi snap-vormingus kataloogide sidumiseks.

Kuna ajutise katalooge nimi on etteaimatav, saab ründaja selle sisu vahetada sümboolse lingiga hetkel pärast omaniku kontrollimist, kuid enne süsteemikutsungit mount. Näiteks on võimalik luua kataloogis /tmp/snap.lxd sümboolne link «/tmp/snap.lxd/tmp», mis osutab suvalisele kataloogile, ning kutsung mount() järgib sümboolset linki ja monteerib katalooge snap-nimede ruumis. Sarnaselt saab oma sisu monteerida /var/lib ja asendades /var/lib/snapd/mount/snap.snap-store.user-fstab korraldada oma katalooge /etc monteerimist snap-paki nimed ruumis, et korraldada oma raamistikku root õigustega oma raamatukogu laadimiseks asendades /etc/ld.so.preload.

Teatatakse, et eksploitide loomine osutus keeruliseks ülesandeks, kuna utiliit snap-confine on kirjutatud Go keeles, kasutades turvalise programmeerimise tehnikaid, ja sellel on AppArmori põhine kaitse, mis teeb süsteemikutsungite filtreerimist seccomp'i mehhanismi abil, ja rakendab isolatsiooni mount'imisruumi namespace. Kuigi siiski suutsid uurijad valmistada töövõimetava eksploiti, et omandada root õigused süsteemis. Eksploiti kood avaldatakse paar nädalat pärast seda, kui kasutajad on installeerinud antud värskendused.

Allikas: opennet.ru

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