Dobësitë lokale rrënjësore në paketën e veglave të menaxhimit të paketave Snap

Qualys ka identifikuar dy dobësi (CVE-2021-44731, CVE-2021-44730) në programin snap-confine, të furnizuar me flamurin rrënjësor SUID dhe të thirrur nga procesi snapd për të krijuar një mjedis të ekzekutueshëm për aplikacionet e dorëzuara në vetëpërmbajtje në formatin snap. Dobësitë lejojnë një përdorues lokal të paprivilegjuar të ekzekutojë kodin me privilegje rrënjësore në sistem. Problemet janë zgjidhur në përditësimin e sotëm të paketës snapd për Ubuntu 21.10, 20.04 dhe 18.04.

Dobësia e parë (CVE-2021-44730) lejon një sulm përmes manipulimit të lidhjeve të forta, por kërkon çaktivizimin e mbrojtjes së lidhjes së fortë të sistemit (vendosja e sysctl fs.protected_hardlinks në 0). Problemi është shkaktuar nga verifikimi i gabuar i vendndodhjes së skedarëve të ekzekutueshëm të programeve ndihmëse snap-update-ns dhe snap-discard-ns që ekzekutohen si rrënjë. Rruga drejt këtyre skedarëve është llogaritur në funksionin sc_open_snapd_tool() bazuar në shtegun e tij nga /proc/self/exe, i cili ju lejon të krijoni një lidhje të fortë për t'u mbyllur në drejtorinë tuaj dhe të vendosni versionet tuaja të snap- përditësimet-ns dhe snap- utilities në këtë direktori discard-ns. Pas ekzekutimit përmes një lidhjeje të fortë, snap-confine me të drejtat rrënjësore do të nisë skedarët snap-update-ns dhe snap-discard-ns nga drejtoria aktuale, të zëvendësuar nga sulmuesi.

Dobësia e dytë shkaktohet nga një gjendje gare dhe mund të shfrytëzohet në konfigurimin e paracaktuar të Ubuntu Desktop. Që shfrytëzimi të funksionojë me sukses në Ubuntu Server, duhet të zgjidhni një nga paketat nga seksioni "Featured Server Snaps" kur instaloni. Kushti i garës është i dukshëm në funksionin setup_private_mount() i thirrur gjatë përgatitjes së hapësirës së emrave të pikës së montimit për paketën snap. Ky funksion krijon një direktori të përkohshme “/tmp/snap.$SNAP_NAME/tmp” ose përdor një ekzistuese për të lidhur direktoriumet për një paketë snap në të.

Meqenëse emri i drejtorisë së përkohshme është i parashikueshëm, një sulmues mund të zëvendësojë përmbajtjen e tij me një lidhje simbolike pasi të kontrollojë pronarin, por përpara se të thërrasë thirrjen e sistemit të montimit. Për shembull, mund të krijoni një lidhje simbolike "/tmp/snap.lxd/tmp" në drejtorinë /tmp/snap.lxd që tregon një direktori arbitrare, dhe një thirrje në mount() do të ndjekë lidhjen e simboleve dhe do ta montojë direktorinë në snap hapësirën e emrave. Në mënyrë të ngjashme, mund ta montoni përmbajtjen tuaj në /var/lib dhe, duke zëvendësuar /var/lib/snapd/mount/snap.snap-store.user-fstab, të organizoni montimin e drejtorisë tuaj /etc në hapësirën e emrave të paketën snap për të organizuar ngarkimin e bibliotekës suaj nga të drejtat rrënjësore duke zëvendësuar /etc/ld.so.preload.

Vihet re se krijimi i një shfrytëzimi doli të ishte një detyrë jo e parëndësishme, pasi programi snap-confine është shkruar në Go duke përdorur teknika programimi të sigurta, ka mbrojtje të bazuar në profilet AppArmor, filtron thirrjet e sistemit bazuar në mekanizmin seccomp dhe përdor montoni hapësirën e emrave për izolim. Megjithatë, studiuesit ishin në gjendje të përgatisnin një shfrytëzim pune për të fituar të drejta rrënjësore në sistem. Kodi i shfrytëzimit do të publikohet brenda disa javësh pasi përdoruesit të instalojnë përditësimet e dhëna.

Burimi: opennet.ru

Shto një koment