drošība · 5 min · 20.07.2026

QEMU viesa aģents ļauj parastam lietotājam kļūt par root ar simbolisko saišu triku

QEMU viesa aģentā (qga) atklāta kļūda, kas ļauj parastam lietotājam viesa virtuālajā mašīnā iegūt root tiesības. Ievainojamībai piešķirts numurs CVE-2026-12080, un tā publiskota 20. jūlijā. Vaina ir komandā guest-ssh-add-authorized-keys — tajā pašā, ar kuru mitinātājs parasti iebāž SSH publiskās atslēgas viesa mašīnā.

Uzbrukuma pamatā ir simboliskās saites. Lietotājs bez privilēģijām viesa iekšpusē sagatavo saites tā, lai brīdī, kad aģents (kas darbojas kā root) raksta un maina īpašnieku atslēgu failam, tas patiesībā strādā ar failu, ko izvēlējies uzbrucējs. Rezultātā uzbrucējs pārņem īpašumtiesības uz patvaļīgiem root failiem un no turienes izkāpj līdz pilnām root tiesībām mašīnas iekšienē.

Kas ir viesa aģents un ko dara šī komanda

QEMU viesa aģents ir process, kas darbojas virtuālās mašīnas iekšpusē un uztur saziņu ar mitinātāju pa atsevišķu virtio kanālu. Ar to mitinātājs var iesaldēt failu sistēmu pirms momentuzņēmuma, nolasīt tīkla konfigurāciju, izpildīt komandas un — kopš QEMU 5.2 — pārvaldīt SSH atslēgas ar komandām guest-ssh-add-authorized-keys, guest-ssh-remove-authorized-keys un guest-ssh-get-authorized-keys. Komandu saraksts un protokols aprakstīts QEMU dokumentācijā.

Aģents viesī gandrīz vienmēr darbojas ar root tiesībām, jo tam jāpiekļūst jebkura lietotāja mājas mapei un failu sistēmai kopumā. Tieši tas padara katru tā kļūdu bīstamu: ja aģentu var piespiest strādāt ar nepareizu failu, root process izpilda darbību uz faila, kuru izvēlas parasts lietotājs.

Divi ceļi līdz kļūdai

CVE-2026-12080 apraksta divus paņēmienus, kā apiet aģenta pārbaudes:

  • Direktorija simboliskās saites apiešana. Uzbrucējs mērķa lietotāja ~/.ssh mapes vietā noliek simbolisko saiti uz svešu, root piederošu direktoriju. Aģents seko saitei un raksta tur.
  • TOCTOU sacīkste ar faila saiti. Starp brīdi, kad aģents pārbauda authorized_keys failu, un brīdi, kad tas to atver rakstīšanai, uzbrucējs paspēj nomainīt failu pret simbolisko saiti. Klasiska time-of-check to time-of-use nepilnība.

Abos gadījumos iznākums ir tas pats: aģents ar root tiesībām maina īpašnieku failam, kas tam nebija paredzēts, un uzbrucējs to pārņem savā valdījumā.

Ievainojamība neizpaužas pati no sevis. Lai skarto koda ceļu vispār palaistu, mitinātāja pārvaldības slānim — piemēram, libvirt — ir jāizsauc SSH atslēgu komanda. Bez tā komanda vienkārši netiek izpildīta.

Kad tas jums ir svarīgi

Kritiskā daļa ir nosacījums par pārvaldības slāni. Ja jūsu infrastruktūra izmanto guest-ssh-add-authorized-keys SSH piekļuves pārvaldībai — daudzos oVirt, OpenStack un cloud-init tipa uzstādījumos to dara — tad viesa mašīnā ielauzies parasts lietotājs var pakāpties līdz root. Draudu apjoms ir viena virtuālā mašīna, nevis mitinātājs: uzbrukums nekāpj no viesa uz hostu. Toties koplietotā mitināšanā, kur vienā VM ir vairāki lietotāji vai kur VM iekšpusē darbojas mazāk uzticams kods, viena lietotāja tiesību paaugstināšana līdz root nozīmē pilnu kontroli pār to mašīnu.

Ja atslēgu komandas netiek lietotas, praktiskā ekspozīcija ir maza. Vērts pārbaudīt, vai libvirt vai orķestrācijas rīki tās neizsauc automātiski — dažas platformas to dara bez skaidra pieprasījuma.

Ne pirmā reize šogad

QEMU viesa aģents 2026. gadā jau otro reizi kļūst par tiesību paaugstināšanas ceļu. Jūnijā drošības pētnieki no Syntetisk aprakstīja CVE-2026-53657 — Lima projektā aģenta sokets bija pieejams rakstīšanai visiem, tāpēc jebkurš viesa lietotājs varēja sūtīt aģentam komandas un caur tām iegūt root. Tas bija konfigurācijas defekts konkrētā projektā; CVE-2026-12080 sakne ir pašā aģenta kodā, kā tas apstrādā failu ceļus.

Kopīgais abām kļūdām ir aģenta root tiesības. Process, kas dara visu viesa mašīnā ar augstākajām tiesībām un vienlaikus pieņem ievadi no mazāk uzticamas puses, ir liels uzbrukuma laukums pēc būtības.

Ko darīt tagad

Kļūda ir ielāpota. Praktiskie soļi:

  1. Atjaunināt qemu-guest-agent pakotni viesa mašīnās, tiklīdz distribūcija izlaiž laboto versiju. Ielāps jāuzstāda viesī, ne mitinātājā.
  2. Ja atjaunināšana kavējas un SSH atslēgu komandas nav vajadzīgas, tās var atslēgt aģenta konfigurācijā ar --block-rpcs vai baltā saraksta iestatījumu, atstājot pieejamas tikai izmantotās komandas.
  3. Pārbaudīt, kuras VM tiešām ļauj vairākiem lietotājiem ienākt iekšā — tur risks ir reāls, viena lietotāja izolētās mašīnās mazāks.

CVSS vērtējums šai kļūdai svārstās atkarībā no avota: Red Hat to novērtē ar 6,3, feedly rāda 7,3. Atšķirība izriet no tā, cik viegli uzskata par sasniedzamu nosacījumu, ka pārvaldības slānis izsauc SSH komandu. Neatkarīgi no cipara — ja jūsu vide šo komandu lieto, viesa mašīnas root vairs nav aiz privilēģiju robežas, kamēr ielāps nav uzlikts.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie