Erro lokalaren ahultasunak Snap paketeak kudeatzeko tresnan

Qualys-ek bi ahultasun identifikatu ditu (CVE-2021-44731, CVE-2021-44730) snap-confine utilitatean, SUID erroko banderarekin hornituta eta snapd prozesuak deituta, pakete autonomoetan entregatutako aplikazioetarako ingurune exekutagarri bat sortzeko. snap formatuan. Ahultasunei esker, pribilegiorik gabeko tokiko erabiltzaile bati sisteman root pribilegioak dituen kodea exekutatu dezake. Arazoak Ubuntu 21.10, 20.04 eta 18.04rako snapd paketeen eguneratzean konpondu dira.

Lehenengo ahultasunak (CVE-2021-44730) esteka gogorren manipulazioaren bidez erasoa ahalbidetzen du, baina sistemaren esteka gogorren babesa desgaitu behar du (sysctl fs.protected_hardlinks 0 ezarriz). Arazoa root gisa exekutatzen diren snap-update-ns eta snap-discard-ns programen laguntzaileen fitxategi exekutagarrien kokapena gaizki egiaztatzeak eragiten du. Fitxategi hauetarako bidea sc_open_snapd_tool() funtzioan kalkulatu zen /proc/self/exe-tik bere bide propioan oinarrituta, eta horrek esteka gogor bat sortzeko aukera ematen dizu zure direktorioan snap-konfinatzeko eta zure snap-en bertsioak jartzeko. update-ns eta snap- utilitateak direktorio honetako diskard-ns. Esteka gogor baten bidez exekutatu ondoren, snap-confine root eskubideekin snap-update-ns eta snap-discard-ns fitxategiak abiaraziko ditu uneko direktoriotik, erasotzaileak ordezkatuta.

Bigarren ahultasuna lasterketa-egoera batek eragiten du eta Ubuntu mahaigaineko konfigurazio lehenetsian ustiatu daiteke. Explotazioak Ubuntu zerbitzarian arrakastaz funtziona dezan, paketeetako bat hautatu behar duzu instalatzerakoan "Zerbitzari aipagarriak" atalean. Lasterketa-baldintza agerikoa da snap paketerako muntatze-puntuaren izen-espazioa prestatzean deitutako setup_private_mount() funtzioan. Funtzio honek "/tmp/snap.$SNAP_NAME/tmp" aldi baterako direktorioa sortzen du edo lehendik dagoen bat erabiltzen du snap pakete baterako direktorioak muntatzeko.

Behin-behineko direktorioaren izena aurreikusten denez, erasotzaileak bere edukia esteka sinboliko batekin ordezkatu dezake jabea egiaztatu ondoren, baina muntatzeko sistema deiari deitu aurretik. Adibidez, /tmp/snap.lxd direktorioan "/tmp/snap.lxd/tmp" esteka sinbolikoa sor dezakezu direktorio arbitrario batera seinalatzen duena, eta mount()-rako deiak esteka sinbolikoari jarraituko dio eta direktorioa muntatuko du. snap izen-eremua. Era berean, zure edukia /var/lib-en munta dezakezu eta, /var/lib/snapd/mount/snap.snap-store.user-fstab ordezkatuz, zure /etc direktorioaren izen-eremuan munta dezakezu. zure liburutegiaren kargak root eskubideekin antolatzeko snap paketea /etc/ld.so.preload ordezkatuz.

Azpimarratzen da ustiaketa bat sortzea zeregin ez-trivial bat izan zela, snap-confine utilitatea Go-n idazten baita programazio-teknika seguruak erabiliz, AppArmor profiletan oinarritutako babesa duelako, sistema-deiak iragazten dituelako seccomp mekanismoan oinarrituta eta erabiltzen ditu. isolatzeko muntaia izen-espazioa. Hala ere, ikertzaileek lan-explotazio bat prestatu ahal izan zuten sisteman erro-eskubideak lortzeko. Erabiltzaileek emandako eguneraketak instalatu ondoren aste gutxiren buruan argitaratuko da ustiapen-kodea.

Iturria: opennet.ru

Gehitu iruzkin berria