Snapd ja Rust Coreutils'i haavatavus, mis võimaldab saada root-privileegiume Ubuntu's

Ettevõte Qualys tuvastas haavatavuse (CVE-2026-3888) snap-confine ja systemd-tmpfiles'i koostöös Ubuntu's, mis võimaldab mitteprivilegeeritud kasutajal saada root-juurdepääs süsteemile. Probleem ilmneb Ubuntu vaikeseadistuses alates versioonist 24.04. Ubuntu versioonides 16.04-22.04 saab haavatavust kasutada ebatavalistes seadistustes, mis matkivad uuemaid versioone jaotises. Ubuntu's on parandused saadaval eilse snapd paketihalduri uuendamise raames. Snapd-s on probleem lahendatud versiooniuuendusega 2.75.

Haavatavus tekib snap-confine'i ja systemd-tmpfiles'i töötluse vale koostöö tõttu, mis töötatakse suurenenud privileegidega. Snap-confine loob sandbox-keskkonna snap-rakenduste käivitamiseks, samas kui systemd-tmpfiles viib automaatset ajutiste failide ja kataloogide puhastamist. Vaikimisi on systemd-tmpfiles seadistatud kustutama kõik vanad failid ja kataloogid kaustas /tmp, mida võib ründaja kasutada katalogi /tmp/.snap asendamiseks vahetult pärast selle kustutamist systemd-tmpfiles'i utiliidi poolt, kuid enne uuesti loomist snap-confine'i käsuga.

Rünnak seisneb aja võtmas ajutiste failide puhastamise protsessi käivitamiseks, katalooge /tmp/.snap asendades pärast nende kustutamist ja paigutades muudetud koopiaid failidest /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange. Ründajal võib kuluda mitu päeva oodata systemd-tmpfiles'i käivitamist, kuna Ubuntu 24.04-s käivitub puhastamise protsess iga 10 päeva tagant ning uuemates versioonides iga 30 päeva tagant. Pärast katalooge asendamist saavutab ründaja uue sandbox-keskkonna initsialiseerimise snap-confine'i abil.

Kui sandbox-keskkonna sisu luuakse ajutisse katalooge /tmp/.snap, ootab ründaja vajalikku hetke ja nimetab /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange ümber /tmp/.snap/usr/lib/x86_64-linux-gnu, asendades seega teegid ja tagades nende bind-monteerimise root'i õigustega. Nii saab ründaja kontrolli jagatud teekide ja ld.so laaduri üle, mis käivitatakse snap-sandboxis, ning saab saavutada käsu täitmise sageli koodiga root'i õigustega, käivitades igasuguse suid-programmi, mille puhul kasutatakse dünaamilist sidumist.

Juuri root-oikeuksilla sandbox-ympäristössä, joka on eristetty AppArmorilla ja seccomp-perustaisella systeemikutsusuodattimella, hyökkääjä voi kopioida /bin/bash hakemistoon /var/snap/$SNAP/common/ ja asettaa sille oikeudet "04755" (suid root). Vaikka oikeudet on muutettu sandbox-ympäristössä, tiedosto, jonka oikeuksia on muutettu, on saatavilla myös pääjärjestelmässä, joten täydellisten root-oikeuksien saamiseksi riittää, että käynnistää /var/snap//common/bash tavallisena ei-privilegioituna käyttäjänä normaalista järjestelmäympäristöstä.

Samaan aikaan paljastui haavoittuvuus uutils coreutils -työkalupaketissa (Rust Coreutils), joka on GNU Coreutils -paketin vastine, joka on kirjoitettu Rust-kielellä. Haavoittuvuus mahdollistaa ei-privilegioidun käyttäjän saamisen root-oikeuksiin järjestelmässä. Ongelma paljastui Ubuntu 25.10 -version muutosten tarkastelun aikana ja se korjattiin kiertotien kautta ennen Ubuntu 25.10 -version julkaisua toimittamalla /usr/bin/gnurm uutils rm:n sijaan. Uutils-paketissa ongelma oli korjattu uutils coreutils 0.3.0 -julkaisussa, ilman viittausta haavoittuvuuden poistamiseen muutosten listalla (oli mainittu, että rm:ssä, du:ssa, chmodissa ja chgrp:ssä on toteutettu turvallinen polkujen kiertomenetelmä).

Ongelma johtuu kilpailutilanteesta rm-työkalussa, joka mahdollistaa paikallisen käyttäjän korvata hakemiston sisältö symbolisella linkillä rm-prosessin poistaessa normaaleja käyttäjän tiedostoja root-oikeuksilla. Muun muassa haavoittuvuutta voidaan käyttää päivittäisessä ajossa cron-skriptistä /etc/cron.daily/apport, joka ajetaan root-oikeuksilla ja poistaa rekursiivisesti /var/crash-hakemiston sisällön, johon kaikilla käyttäjillä on kirjoitusoikeus.

Kun hakemistoja poistetaan rekursiivisesti, rm-työkalu tarkistaa aluksi kaikki hakemistot ja poistaa sitten ne järjestyksessä käänteisesti, kutsuen rmdir()-toimintoa. Jos vanhemman hakemiston korvaaminen symbolisella linkillä saavutetaan heti tarkistuksen jälkeen mutta ennen alihakemistojen tarkistusta, toimenpide johtaa hakemiston poistamiseen, johon symbolinen linkki osoittaa. Näin voidaan saavuttaa ei ainoastaan minkään tiedoston poistaminen järjestelmässä, vaan myös oikeuksien nostaminen poistamalla hakemisto /tmp/snap-private-tmp/$SNAP/tmp/.snap, mikä mahdollistaa sandbox-ympäristön sisällön vaihtamisen (root-oikeuksien saantimenetelmä on samanlainen kuin ensimmäisessä haavoittuvuudessa).

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster