Odkrili so ranljivost VFS v Linuxu, ki omogoča eskalacijo privilegijev

Pred nekaj dnevi objavljena je bila novica, da je bila ranljivost ugotovljena (že katalogiziran pod CVE-2022-0185) inn API konteksta datotečnega sistema zagotavlja jedro linux ki bi lahko lokalnemu uporabniku omogočila pridobitev korenskih pravic v sistemu.

Omenjeno je, da težava je v tem, da lahko neprivilegiran uporabnik dobi takšna dovoljenja v izoliranem vsebniku če je v sistemu omogočena podpora za uporabniške imenske prostore.

Na primer, uporabniški imenski prostori so privzeto omogočeni v Ubuntuju in Fedori, niso pa omogočeni v Debianu in RHEL (razen če se uporabljajo platforme za izolacijo vsebnikov). Poleg stopnjevanja privilegijev se lahko ranljivost uporabi tudi za izhod iz izoliranega vsebnika, če ima vsebnik pooblastilo CAP_SYS_ADMIN.

Ranljivost obstaja v funkciji legacy_parse_param() v VFS in je posledica pomanjkanja ustreznega preverjanja največje velikosti podanih parametrov v datotečnih sistemih, ki ne podpirajo API-ja konteksta datotečnega sistema.

Pred kratkim smo z nekaj prijatelji iz moje ekipe CTF Crusaders of Rust naleteli na 0-dnevno prelivanje kopice jedra Linuxa. Hrošo smo našli s pomočjo fuzziranja s syzkallerjem in jo hitro razvili v izkoriščanje Ubuntu LPE. Nato smo ga prepisali, da bi pobegnil in koreninil Googlovo utrjeno infrastrukturo Kubernetes CTF. Ta napaka vpliva na vse različice jedra od 5.1 (5.16 je trenutno v teku) in ji je dodeljen CVE-2022-0185. To smo že prijavili distribuciji Linuxa in varnostnemu poštnemu seznamu, napaka pa je bila odpravljena od izdaje tega članka.

Prenos prevelikega parametra lahko povzroči prelivanje celoštevilske spremenljivke, uporabljene za izračun velikosti zapisanih podatkov; koda ima preverjanje prelivanja medpomnilnika "if (len > PAGE_SIZE - 2 - velikost)", ki ne deluje, če je vrednost velikosti večja od 4094 zaradi prelivanja celega števila skozi spodnjo mejo (pretok celega števila, ko pretvori 4096 – 2 – 4095 v nepodpisani int, dobi 2147483648).

Ta napaka omogoča pri dostopu do posebej izdelane slike FS, povzroči prepolnitev medpomnilnika in prepiše podatke jedra, ki sledijo dodeljenemu pomnilniškemu območju. Za izkoriščanje ranljivosti so potrebne pravice CAP_SYS_ADMIN, torej skrbniška pooblastila.

Od leta 2022 so se naši soigralci odločili poiskati dan 0 v letu 2022. Nismo bili povsem prepričani, kako začeti, a ker je bila naša ekipa zelo dobro seznanjena z ranljivostmi jedra Linuxa, smo se odločili, da kupimo le nekaj namenskih strežnikov. in zaženite Googlov syzkaller fuzzer. 6. januarja ob 22:30 PST je chop0 prejel naslednje poročilo o napaki KASAN v legacy_parse_param: slab-out-of-bounds Write in legacy_parse_param. Zdi se, da je syzbot to težavo odkril šele 6 dni prej, ko je fuzziral Android, vendar težave nismo rešili in smo naivno mislili, da nihče drug ni opazil.

Na koncu velja omeniti, da se težava pojavlja že od različice jedra Linuxa 5.1 in je bila rešena v posodobitvah, ki so bile pred nekaj dnevi izdane v različicah 5.16.2, 5.15.16, 5.10.93, 5.4.173.

Poleg tega posodobitve paketa ranljivosti so že izdane za RHELDebianfedora in Ubuntu. Medtem ko rešitev še ni na voljo na Arch LinuxGentooSUSE y openSUSE.

V primeru teh je omenjeno, da lahko kot varnostno rešitev za sisteme, ki ne uporabljajo izolacije vsebnikov, nastavite vrednost sysctl "user.max_user_namespaces" na 0:

Raziskovalec, ki je odkril problem, je objavil demo izkorišča que omogoča izvajanje kode kot root v Ubuntu 20.04 v privzeti konfiguraciji. To je načrtovano koda za izkoriščanje je objavljena na GitHubu v enem tednu po tem da distribucije izdajo posodobitev, ki odpravlja ranljivost.

Končno če vas zanima več o tem, podrobnosti lahko preverite v naslednja povezava.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   galicijski je dejal

    Še en razlog, da se snapa ne dotikate s palico.