Linuxi VFS tuuma haavatavus, mis vÔimaldab tÔsta oma Ôigusi

Linuxi tuuma kaudu pakutud API Filesystem Contextis on avastatud kahjustus (CVE-2022-0185), mis vĂ”imaldab kohalikel kasutajatel saada root-Ă”igusi sĂŒsteemis. Probleemi avastanud teadlane on avaldanud tĂ”endi, mis demonstreerib exploiti, mille abil on vĂ”imalik tĂ€ita koodi root-Ă”igustes Ubuntu 20.04 vaikeseades. Exploiti plaanitakse paigutada GitHubi nĂ€dal jooksul pĂ€rast seda, kui distributsioonid vabastavad vĂ€rskenduse turvaaugu kohandamiseks.

Kahjustus on olemas funktsioonis legacy_parse_param() VFS-is ja see on pĂ”hjustatud nĂ”rkade kontrollide puudumisest failisĂŒsteemide poolt esitatud parameetrite maksimaalse suuruse kohta, mis ei toeta API Filesystem Contexti. Liialt suure parameetri edastamisel on vĂ”imalik pĂ”hjustada tĂ€isarvu muutujate ĂŒlevoolu, mis on kasutatud kirjutatavate andmete suuruse arvutamiseks — koodis on olemas piirangu kontroll ‘if (len > PAGE_SIZE — 2 — size)’, mis ei toimi, kui size vÀÀrtus ĂŒletab 4094, tulenevalt tĂ€isarvu ĂŒlevoolust (kui 4096 — 2 — 4095 konverteerida unsigned int’iks, on tulemuseks 2147483648).

Antud viga vĂ”imaldab juurdepÀÀsul spetsiaalselt vormindatud failisĂŒsteemile pĂ”hjustada pufferi ĂŒlevoolu ja kirjutada ĂŒle tuuma andmed, mis jĂ€rgivad eraldatud mĂ€lu piirkonda. Kahjustuse Ă€rakasutamiseks on vajalik CAP_SYS_ADMIN Ă”iguste olemasolu, s.t. administraatori volitused. Probleem on, et sarnaseid volitusi vĂ”ib mitteprivilegeeritud kasutaja saada isoleeritud konteineris, kui sĂŒsteemis on aktiivne kasutaja nime ruumide (user namespaces) toetus. NĂ€iteks on user namespaces vaikimisi aktiveeritud Ubuntus ja Fedoras, kuid ei ole lubatud Debiani ja RHEL-i puhul (kui ei kasutata konteinerite isoleerimise platvorme).

Probleem ilmneb alates Linuxi tuumast 5.1 ja on lahendatud eilsete vĂ€rskendustega 5.16.2, 5.15.16, 5.10.93, 5.4.173. Pakettide vĂ€rskendused, mis kĂ”rvaldavad kahjustuse, on juba vĂ€lja antud RHEL-i, Debiani, Fedora ja Ubuntu jaoks. Parandus ei ole veel saadaval Arch Linuxis, Gentoo-s, SUSE-s ja openSUSE-s. Kaitsestrateegiana sĂŒsteemide jaoks, mis ei kasuta konteinerite isoleerimist, saab seada sysctl „user.max_user_namespaces“ vÀÀrtuseks 0: echo „user.max_user_namespaces=0“ > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf

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