Vulnerabilitetet lokale root në koleksionin e mjeteve të menaxhimit të paketave Snap

Kompania Qualys identifikoi dy dobësi (CVE-2021-44731, CVE-2021-44730) në utilitarin snap-confine, i ofruar me flamurin SUID root dhe i thirrur nga procesi snapd për të formuar ambientin ekzekutiv për aplikacionet e ofruara në paketa të pavarura në formatin snap. Dobësitë lejojnë një përdorues lokal pa privilegje të arrijë ekzekutimin e kodit me të drejtat root në sistem. Problemet janë zgjidhur në përditësimin e sotëm të pakove snapd për Ubuntu 21.10, 20.04 dhe 18.04.

Vulnerabiliteti i parë (CVE-2021-44730) lejon një sulm përmes manipulimit të lidhjeve të forta, por kërkon çaktivizimin e mbrojtjes së sistemit për lidhjet e forta (caktimin e sysctl fs.protected_hardlinks në 0). Problemi shkaktohet nga kontrolli i papërshtatshëm i vendndodhjes së skedarëve ekzekutivë të mjeteve ndihmëse snap-update-ns dhe snap-discard-ns, të cilat ekzekutohen me të drejtat root. Rruga për këto skedare llogaritet në funksionin sc_open_snapd_tool() në bazë të rrugës së tij nga /proc/self/exe, që lejon krijimin e një lidhjeje të fortë me snap-confine në katalogun e tij dhe vendosjen e varianteve të tij të mjeteve snap-update-ns dhe snap-discard-ns në këtë katalog. Pasi të ekzekutohet përmes lidhjes së fortë, snap-confine me të drejtat root do të ekzekutojë skedarët snap-update-ns dhe snap-discard-ns të vendosur nga sulmuesi nga katalogu aktual.

Dëgjesa e dytë krijohet nga një gjendje garë që mund të shfrytëzohet në konfigurimin e Ubuntu Desktop me default. Për të funksionuar me sukses shfrytëzimi në Ubuntu Server, është e nevojshme të zgjidhet gjatë instalimit një nga paketat nga seksioni "Featured Server Snaps". Gjendja e garës shfaqet në funksionin setup_private_mount(), i thirrur gjatë përgatitjes së hapësirës emërues për pikat e montimit për paketën snap. Ky funksion krijon një katalog përkohësisht "/tmp/snap.$SNAP_NAME/tmp" ose përdor një të ekzistueshëm për montimin e lidhur të katalogeve për paketat në formatin snap.

Duke, emri i direktorisë së përkohshme është i parashikueshëm, sulmuesi mund të zëvendësojë përmbajtjen e saj me një lidhje simbolike në momentin pas verifikimit të pronarit, por para thirrjes së sistemit të thirrjeve mount. Për shembull, mund të krijohet në direktorine /tmp/snap.lxd një lidhje simbolike «/tmp/snap.lxd/tmp», e cila tregon në një direktorik të arbitrar, dhe thirrja mount() do të ndjekë lidhjen simbolike dhe do të montojë direktorinë në hapësirën emërtuese snap. Në të njëjtën mënyrë, mund të montohet përmbajtja e tij në /var/lib dhe përmes zëvendësimit të /var/lib/snapd/mount/snap.snap-store.user-fstab të organizohet montimi i direktorive të tij /etc në hapësirën emërtuese të paketës snap për të mundësuar ngarkimin e bibliotekës së tij me të drejtat root përmes zëvendësimit të /etc/ld.so.preload.

Krijohet se krijimi i një eksploiti ishte një detyrë e ndërlikuar, pasi utilitari snap-confine është shkruar në gjuhën Go duke përdorur teknika të programimit të sigurt, ka mbrojtje të bazuar në profilet AppArmor, filtrimin e thirrjeve sistemore mbi mekanizmin seccomp dhe aplikon izolimin me hapësira emërtimi për montimin. Megjithatë, hulumtuesit arritën të përgatisin një eksploit funksional për të fituar të drejtat root në sistem. Kodi i eksploitit do të publikojë brenda disa javësh, pasi përdoruesit të instalojnë përditësimet e ofruara.

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