Vulnerabilità di a radica locale in u toolkit di gestione di pacchetti Snap

Qualys hà identificatu duie vulnerabili (CVE-2021-44731, CVE-2021-44730) in l'utilità snap-confine, furnita cù a bandiera di root SUID è chjamata da u prucessu snapd per creà un ambiente eseguibile per l'applicazioni consegnate in pacchetti autònumi. in u formatu snap. I vulnerabili permettenu à un utilizatore locale senza privilegiu per eseguisce codice cù privilegi di root in u sistema. I prublemi sò risolti in l'aghjurnamentu di u pacchettu snapd d'oghje per Ubuntu 21.10, 20.04 è 18.04.

A prima vulnerabilità (CVE-2021-44730) permette un attaccu per a manipulazione di u ligame duru, ma richiede di disattivà a prutezzione di u ligame duru di u sistema (impostà sysctl fs.protected_hardlinks à 0). U prublema hè causatu da una verificazione incorrecta di u locu di i fugliali eseguibili di i prugrammi d'aiutu snap-update-ns è snap-discard-ns run as root. U percorsu à questi schedari hè statu calculatu in a funzione sc_open_snapd_tool() basatu annantu à a so propria strada da /proc/self/exe, chì vi permette di creà un ligame duru per snap-confine in u vostru cartulare è mette e vostre versioni di u snap-. update-ns è snap- utilità in stu cartulare. discard-ns. Dopu avè eseguitu via un ligame duru, snap-confine cù diritti di root lanciarà i fugliali snap-update-ns è snap-discard-ns da u cartulare attuale, sustituitu da l'attaccante.

A seconda vulnerabilità hè causata da una cundizione di razza è pò esse sfruttata in a cunfigurazione Ubuntu Desktop predeterminata. Per u sfruttamentu per travaglià bè in Ubuntu Server, deve selezziunate unu di i pacchetti da a sezione "Featured Server Snaps" quandu installate. A cundizione di razza hè evidenti in a funzione setup_private_mount() chjamata durante a preparazione di u spaziu di nome di u puntu di muntagna per u pacchettu snap. Questa funzione crea un repertoriu temporale "/tmp/snap.$SNAP_NAME/tmp" o usa un esistente per vince i cartulari di muntazione per un pacchettu snap in questu.

Siccomu u nome di u repertoriu pruvisoriu hè prevedibile, un attaccu pò rimpiazzà u so cuntenutu cù un ligame simbolicu dopu avè verificatu u pruprietariu, ma prima di chjamà a chjama di u sistema di muntagna. Per esempiu, pudete creà un ligame simbolicu "/tmp/snap.lxd/tmp" in u repertoriu /tmp/snap.lxd chì punta à un repertoriu arbitrariu, è una chjama à mount() seguirà u ligame simbolicu è monterà u cartulare in u cartulare. snap namespace. In una manera simile, pudete muntà u vostru cuntenutu in /var/lib è, rimpiazzendu /var/lib/snapd/mount/snap.snap-store.user-fstab, urganizà u muntatu di u vostru cartulare /etc in u namespace di u pacchettu snap per urganizà u caricamentu di a vostra biblioteca cù diritti di root rimpiazzandu /etc/ld.so.preload.

Hè nutatu chì a creazione di un sfruttamentu hè diventatu un compitu micca trivial, postu chì l'utilità snap-confine hè scritta in Go usendu tecniche di prugrammazione sicura, hà una prutezzione basata nantu à i profili AppArmor, filtra e chjama di u sistema basatu nantu à u mecanismu seccomp, è usa. u spaziu di nomi di muntagna per l'isulazione. Tuttavia, i circadori sò stati capaci di priparà un sfruttamentu di travagliu per guadagnà i diritti di a radica in u sistema. U codice di sfruttamentu serà publicatu in uni pochi di settimane dopu chì l'utilizatori installanu l'aghjurnamenti furniti.

Source: opennet.ru

Add a comment