Ninu ohun elo irinṣẹ runc fun ṣiṣe awọn apoti ti o ya sọtọ ti a lo ni Docker ati Kubernetes, a rii ipalara CVE-2024-21626, eyiti o fun laaye iwọle si eto faili ti agbegbe agbalejo lati inu eiyan ti o ya sọtọ. Lakoko ikọlu, ikọlu le tun kọ diẹ ninu awọn faili ti o le ṣiṣẹ ni agbegbe agbalejo ati nitorinaa ṣaṣeyọri ipaniyan ti koodu rẹ ni ita apoti naa. Ni asiko asiko crun ati youki, ti o lo runc, bakannaa ni LXC, iṣoro naa ko han. Ailagbara naa wa titi ni runc 1.1.12.
Nigbati o ba nlo awọn irinṣẹ Docker tabi Kubernetes, ikọlu le ṣee ṣe nipasẹ murasilẹ aworan eiyan ti a ṣe apẹrẹ pataki, lẹhin fifi sori ẹrọ ati ifilọlẹ eyiti FS ita le wọle lati inu eiyan naa. Nigba lilo Docker, o ṣee ṣe lati ṣiṣẹ nipasẹ Dockerfile ti a ṣe apẹrẹ pataki. Ailagbara naa tun le ni ilokulo ti awọn ilana ba ṣe ifilọlẹ ninu apo eiyan nipa lilo pipaṣẹ “runc exec” nipa dipọ ilana iṣẹ si aaye orukọ ti agbegbe ogun.
Ailagbara naa ṣẹlẹ nipasẹ jijo ti awọn apejuwe faili inu. Ṣaaju ki o to ṣiṣẹ koodu inu apo eiyan, runc tilekun gbogbo awọn apejuwe faili nipa lilo asia O_CLOEXEC. Bibẹẹkọ, awọn ipaniyan setcwd() ti o tẹle fi oluṣapejuwe faili silẹ ṣiṣi ti o tọka si itọsọna iṣẹ ati pe o wa ni iraye si lẹhin ti o ti bẹrẹ eiyan naa. Orisirisi awọn oju iṣẹlẹ ipilẹ fun ikọlu agbegbe agbalejo nipa lilo oluṣapejuwe faili ti o ku ni a ti daba.
Fun apẹẹrẹ, ikọlu le pato ilana kan ilana.cwd paramita ninu aworan eiyan ti o tọka si “/proc/self/fd/7/”, eyi ti yoo ja si ni abuda lati ṣe ilana pid1 ninu iwe ilana iṣẹ eiyan, ti o wa ni agbegbe agbegbe ogun. gbe aaye. Nitorinaa, ninu aworan eiyan, o le tunto ifilọlẹ ti “/ proc/self/fd/7/.../.../../bin/ bash” ati, nipasẹ ipaniyan ti iwe afọwọkọ ikarahun, kọ awọn akoonu ti “/ proc/self/exe”, eyiti o tọka si ẹda agbalejo ti / bin/bash.
Iyatọ ikọlu miiran ngbanilaaye ikọlu ti o wa ni ihamọ laarin apo eiyan kan lati ni iraye si itọsọna agbegbe agbalejo ti awọn ilana ti o ni anfani ba nṣiṣẹ ninu apoti ti a ti sọ pato nipa lilo pipaṣẹ runc exec pẹlu aṣayan --cwd. Olukọni le rọpo ọna ti ilana ifilọlẹ pẹlu ọna asopọ aami ti o tọka si “/ proc/self/fd/7/” ati ṣaṣeyọri ṣiṣi “/ proc/$exec_pid/cwd” lati wọle si FS ni ẹgbẹ agbalejo. Olukọni tun le ṣaṣeyọri atunkọ awọn faili ti o le ṣiṣẹ ni ẹgbẹ ti agbegbe agbalejo nipa siseto ifilọlẹ faili ti o ṣiṣẹ lati agbegbe agbalejo (“/proc/self/fd/7/../../../bin/ bash”) ati lẹhinna atunkọ faili “/proc/$pid/exe”, eyiti o tọka si faili nṣiṣẹ.
Ni afikun, awọn ailagbara marun diẹ sii ti jẹ idanimọ ni awọn paati ti ohun elo irinṣẹ Docker:
- CVE-2024-23651 jẹ ipo ere-ije ninu package BuildKit ti Docker lo lati yi koodu orisun pada si awọn ohun-ọṣọ kikọ. Ailagbara naa jẹ idi nipasẹ lilo aaye oke kan ti o wọpọ pẹlu kaṣe kan (“—mount=type=cache,source=”) ni awọn ipele kikọ nigbakanna, eyiti o ngbanilaaye, nigba ṣiṣe Dockerfile ti a ṣe apẹrẹ pataki ni BuildKit, iraye si awọn faili ninu awọn ogun ayika lati Kọ eiyan. Ailagbara naa wa titi ni BuildKit 0.12.5.
- CVE-2024-23652 Aṣiṣe ni piparẹ awọn faili ofo ti a ṣẹda fun aaye oke nigba lilo aṣayan “--mount” ngbanilaaye fun piparẹ faili kan ni ita apo eiyan nigbati o nṣiṣẹ Dockerfile ti a ṣe ni pataki. Ailagbara naa wa titi ni BuildKit 0.12.5.
- CVE-2024-23653 Aṣiṣe kan ninu imuse API ni BuildKit ngbanilaaye ipaniyan eiyan lati waye pẹlu awọn anfani ti o ga, laibikita ipo ti eto aabo.insecure. Ailagbara naa wa titi ni BuildKit 0.12.5.
- CVE-2024-23650 Onibara BuildKit irira tabi iwaju le fa ilana BuildKit lẹhin lati jamba. Ailagbara naa wa titi ni BuildKit 0.12.5.
- CVE-2024-24557 jẹ majele kaṣe ti o ṣeeṣe ni Moby, paati fun kikọ awọn eto ipinya eiyan pataki. Nipa sisẹ aworan eiyan ti a ṣe apẹrẹ pataki, o le kaṣe data ti o le ṣee lo ni awọn igbesẹ kikọ ti o tẹle. Ailagbara naa ti wa titi ni Moby 25.0.2 ati 24.0.9.
orisun: opennet.ru
