Lokale root-kwetsberheden yn Snap pakketbehear toolkit

Qualys hat twa kwetsberens identifisearre (CVE-2021-44731, CVE-2021-44730) yn it snap-confine-hulpprogramma, dat komt mei de SUID-rootflagge en wurdt oproppen troch it snapd-proses om in útfierbere omjouwing te meitsjen foar applikaasjes levere yn sels- befette pakketten yn it snap-formaat. De kwetsberens kinne in lokale net-befoarrjochte brûker koade útfiere mei root-privileges op it systeem. De problemen wurde oplost yn 'e hjoeddeiske snapd-pakketupdate foar Ubuntu 21.10, 20.04 en 18.04.

De earste kwetsberens (CVE-2021-44730) lit in oanfal troch hurde keppeling manipulaasje, mar fereasket it útskeakeljen systeem hurde keppeling beskerming (set sysctl fs.protected_hardlinks oan 0). It probleem wurdt feroarsake troch ferkearde ferifikaasje fan de lokaasje fan de útfierbere bestannen fan de helpprogramma's snap-update-ns en snap-discard-ns rinne as root. It paad nei dizze triemmen waard berekkene yn de sc_open_snapd_tool() funksje basearre op syn eigen paad fan /proc/self/exe, wêrmei jo in hurde keppeling meitsje kinne om te snap-beheine yn jo map en jo eigen ferzjes fan 'e snap- te pleatsen. update-ns en snap- utilities yn dizze map discard-ns. Nei it rinnen fia in hurde keppeling, sil snap-beheine mei rootrjochten de snap-update-ns en snap-discard-ns-bestannen starte fanút de hjoeddeistige map, ferfongen troch de oanfaller.

De twadde kwetsberens wurdt feroarsake troch in racebetingsten en kin brûkt wurde yn 'e standert Ubuntu Desktop-konfiguraasje. Foar de eksploitaasje om suksesfol te wurkjen yn Ubuntu Server, moatte jo ien fan 'e pakketten selektearje út' e seksje "Featured Server Snaps" by it ynstallearjen. De race betingst is dúdlik yn de setup_private_mount () funksje neamd ûnder de tarieding fan de berch punt nammeromte foar de snap pakket. Dizze funksje makket in tydlike triemtafel "/tmp/snap.$SNAP_NAME/tmp" of brûkt in besteande foar in binde-mount mappen foar in snap pakket yn it.

Sûnt de namme fan 'e tydlike map is foarsisber, in oanfaller kin ferfange syn ynhâld mei in symboalyske keppeling nei it kontrolearjen fan de eigner, mar foardat ropt de berch systeem oprop. Jo kinne bygelyks in symlink "/tmp/snap.lxd/tmp" oanmeitsje yn 'e /tmp/snap.lxd map dy't ferwiist nei in willekeurige map, en in oprop om te mount () sil de symlink folgje en de map yn 'e mount snap nammeromte. Op in fergelykbere manier kinne jo jo ynhâld yn /var/lib montearje en, troch /var/lib/snapd/mount/snap.snap-store.user-fstab te ferfangen, de mounting fan jo /etc-map organisearje yn 'e nammeromte fan it snappakket om it laden fan jo bibleteek te organisearjen mei rootrjochten troch /etc/ld.so.preload te ferfangen.

It wurdt opmurken dat it meitsjen fan in eksploitaasje in net-triviale taak blykte te wêzen, om't it snap-confine-hulpprogramma is skreaun yn Go mei help fan feilige programmeartechniken, hat beskerming basearre op AppArmor-profilen, filteret systeemoproppen basearre op it seccomp-meganisme, en brûkt de berch nammeromte foar isolaasje. De ûndersikers koene lykwols in wurkjende eksploit tariede om rootrjochten op it systeem te krijen. De eksploitaasjekoade wurdt publisearre yn in pear wiken neidat brûkers de levere updates ynstallearje.

Boarne: opennet.ru

Add a comment