Haavatavus cgroups v1-s, mis vÔimaldab pÔgeneda isoleeritud konteinerist

Avalikustatud on kernelis oleva cgroups v1 ressursipiirangu mehhanismi implementatsiooni haavatavuse (CVE-2022-0492) ĂŒksikasjad. Linux, mida saab kasutada isoleeritud konteineritest pÀÀsemiseks. Probleem ilmneb alates kernelist. Linux 2.6.24 ja parandatud kerneli versioonides 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 ja 4.9.301. Pakettide vĂ€rskenduste avaldamist distributsioonides saate jĂ€lgida jĂ€rgmistel lehtedel: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

Haavatavuse pÔhjustab loogikaviga failikÀitlejas release_agent, mis ei teosta kÀitleja tÀielike Ôigustega kÀivitamisel korralikke kontrolle. Faili release_agent kasutatakse programmi mÀÀratlemiseks, mida kernel kÀivitab cgroupi protsessi lÔppemisel. See programm kÀivitatakse juurkasutajaÔigustega ja kÔigi juurkasutaja nimeruumi vÔimalustega. SÀte release_agent oli mÔeldud olema ligipÀÀsetav ainult administraatorile, kuid tegelikkuses piirdusid kontrollid juurdepÀÀsu andmisega juurkasutajale, mis ei takistanud sÀtte muutmist konteineri seest vÔi mitteadministraatoriÔigustega juurkasutaja (CAP_SYS_ADMIN) poolt.

Varem poleks sellist funktsiooni haavatavusena peetud, kuid olukord muutus kasutajanimeruumide tulekuga, mis vĂ”imaldavad luua eraldi juurkasutajaid konteinerites, mis ei kattu pĂ”hikeskkonna juurkasutajaga. Seega piisab rĂŒnnakuks release_agent kĂ€itleja ĂŒhendamisest konteineris, millel on oma juurkasutaja eraldi kasutajanimeruumis, mis pĂ€rast protsessi lĂ”ppu kĂ€ivitatakse pĂ”hikeskkonna tĂ€ielike Ă”igustega.

Vaikimisi paigaldatakse cgroupfs konteinerisse kirjutuskaitstud reĆŸiimis, kuid selle pseudo-fs-i uuesti paigaldamisel kirjutamisreĆŸiimis pole probleeme, kui teil on CAP_SYS_ADMIN Ă”igused vĂ”i kui loote pesastatud konteineri eraldi kasutajanimeruumiga, kasutades sĂŒsteemikutse unshare, kus loodud konteineri jaoks on CAP_SYS_ADMIN Ă”igused saadaval.

Haavatavus cgroups v1-s, mis vÔimaldab pÔgeneda isoleeritud konteinerist

RĂŒnnakut saab sooritada juurĂ”igustega isoleeritud konteineris vĂ”i konteineri kĂ€ivitamisel ilma liputa no_new_privs, mis takistab tĂ€iendavate Ă”iguste andmist. Kasutajanimeruumid peavad sĂŒsteemis olema lubatud (vaikimisi lubatud Ubuntu ja Fedora, aga mitte aktiveeritud Debian ja RHEL) ning juurdepÀÀs juur-cgroup v1-le (nĂ€iteks Docker kĂ€itab konteinereid juur-RDMA cgroup'is). RĂŒnnak on vĂ”imalik ka CAP_SYS_ADMIN Ă”igustega, sel juhul pole kasutajanimeruumi tugi ja juurdepÀÀs juur-cgroup v1 hierarhiale vajalik.

Lisaks isoleeritud konteinerist pÀÀsemisele vĂ”imaldab haavatavus ka protsessidel, mille on kĂ€ivitanud root ilma vastavate vĂ”imalusteta kasutaja vĂ”i mis tahes kasutaja, kellel on CAP_DAC_OVERRIDE Ă”igused (rĂŒnnak nĂ”uab juurdepÀÀsu failile /sys/fs/cgroup/*/release_agent, mis kuulub root'ile), pÀÀseda ligi kĂ”igile sĂŒsteemi vĂ”imalustele.

MĂ€rgitakse, et seda haavatavust ei saa Ă€ra kasutada Seccompi, AppArmori vĂ”i SE kaitsemehhanismide kasutamisel.Linux konteinerite tĂ€iendavaks isoleerimiseks, kuna Seccomp blokeerib unshare() sĂŒsteemikĂ”ne ning AppArmor ja SELinux Ära luba cgroupfs-i paigaldamist kirjutamisreĆŸiimis.

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster