U Toolkitu za upravljanje izoliranim Linux Docker kontejnerima ranjivost (), koji vam, pod određenim skupom okolnosti, omogućuje pristup okruženju domaćina iz spremnika ako imate mogućnost pokretanja svojih slika na sustavu ili s pristupom spremniku koji radi. Problem se pojavljuje u svim verzijama Dockera i ostaje neriješen (predložen, ali još nije prihvaćen, , koji provodi ovjes kontejnera tijekom izvođenja operacija s FS-om).
Ranjivost omogućuje izdvajanje datoteka iz spremnika u proizvoljni dio datotečnog sustava glavnog sustava prilikom izvršavanja naredbe "docker cp". Ekstrakcija datoteke izvodi se s root pravima, što omogućuje čitanje ili pisanje bilo koje datoteke u glavnom okruženju, što je dovoljno za stjecanje kontrole nad glavnim sustavom (na primjer, možete prebrisati /etc/shadow).
Napad se može izvesti samo kada administrator izvrši naredbu “docker cp” za kopiranje datoteka u ili iz spremnika. Dakle, napadač mora nekako uvjeriti Docker administratora da treba izvršiti ovu operaciju i predvidjeti put koji se koristi prilikom kopiranja. S druge strane, napad se može izvesti, na primjer, kada usluge u oblaku pružaju alate za kopiranje konfiguracijskih datoteka u spremnik, izgrađen pomoću naredbe “docker cp”.
Problem je uzrokovan greškom u primjeni funkcije , koji izračunava apsolutni put u glavnom datotečnom sustavu na temelju relativnog puta, uzimajući u obzir položaj spremnika. Tijekom izvršavanja naredbe "docker cp", kratkotrajni , u kojem je put već verificiran, ali operacija još nije izvršena. Budući da se kopiranje izvodi u kontekstu glavnog datotečnog sustava glavnog sustava, u određenom vremenskom razdoblju možete uspjeti zamijeniti vezu drugom stazom i pokrenuti kopiranje podataka na proizvoljnu lokaciju u datotečnom sustavu izvan spremnik.
Budući da je vremenski okvir za pojavu uvjeta utrke vrlo ograničen u pripremljenom Prilikom izvođenja operacija kopiranja iz spremnika, bilo je moguće postići uspješan napad u manje od 1% slučajeva cikličkom zamjenom simboličke veze u putanji korištenoj u operaciji kopiranja (uspješan napad je izveden nakon otprilike 10 sekundi pokušaja za neprekidno kopiranje datoteke u petlji s naredbom “docker cp”).
Izvođenjem operacije kopiranja u spremnik, možete postići ponovljivi napad prepisivanja datoteke na glavnom sustavu u samo nekoliko ponavljanja. Mogućnost napada je zbog činjenice da se prilikom kopiranja u spremnik koristi koncept "chrootarchive", prema kojem proces archive.go ekstrahira arhivu ne u chroot korijenskog spremnika, već u chroot nadređeni direktorij ciljne staze, kontroliran od strane napadača, i ne zaustavlja izvođenje spremnika (chroot se koristi kao znak za iskorištavanje uvjeta utrke).
Izvor: opennet.ru
