En Ilaro por Administrado de Izolitaj Linukso Docker Ujoj vundebleco (), kiu, sub certa aro de cirkonstancoj, permesas vin aliri la gastigan medion de ujo se vi havas la kapablon lanĉi viajn bildojn en la sistemo aŭ kun aliro al funkcianta ujo. La problemo aperas en ĉiuj versioj de Docker kaj restas nefiksita (proponita, sed ankoraŭ ne akceptita, , kiu efektivigas la suspendon de la ujo dum farado de operacioj kun la FS).
La vundebleco permesas eltiri dosierojn el ujo al arbitra parto de la dosiersistemo de la gastiga sistemo dum plenumado de la komando "docker cp". Dosiera eltiro estas farita kun radikrajtoj, kio ebligas legi aŭ skribi ajnajn dosierojn en la gastiga medio, kio sufiĉas por akiri kontrolon de la gastiga sistemo (ekzemple, vi povas anstataŭigi /etc/shadow).
La atako nur povas esti farita kiam la administranto plenumas la komandon "docker cp" por kopii dosierojn al aŭ de la ujo. Tiel, la atakanto devas iel konvinki la Docker-administranton pri la bezono plenumi ĉi tiun operacion kaj antaŭdiri la vojon uzatan dum kopiado. Aliflanke, atako povas esti farita, ekzemple, kiam nubaj servoj provizas ilojn por kopii agordajn dosierojn en ujon, konstruitan per la komando "docker cp".
La problemo estas kaŭzita de difekto en la aplikado de la funkcio , kiu kalkulas la absolutan vojon en la ĉefa dosiersistemo surbaze de la relativa vojo, konsiderante la lokigon de la ujo. Dum ekzekuto de la komando "docker cp", mallongdaŭra , en kiu la vojo jam estis kontrolita, sed la operacio ankoraŭ ne estis farita. Ĉar la kopiado estas farita en la kunteksto de la ĉefa dosiersistemo de la gastiga sistemo, ene de difinita tempodaŭro, vi povas sukcesi anstataŭigi la ligon per alia vojo kaj komenci kopiadon de datumoj al arbitra loko en la dosiersistemo ekster la dosiersistemo. ujo.
Ĉar la tempofenestro por vetkura kondiĉo por okazi estas tre limigita en preta Farante kopioperaciojn de ujo, eblis atingi sukcesan atakon en malpli ol 1% de kazoj kiam cikle anstataŭigante simbolan ligon en la vojo uzata en la kopioperacio (la sukcesa atako estis farita post proksimume 10 sekundoj da provoj). por senĉese kopii la dosieron en buklo kun la komando "docker cp").
Farante kopian operacion en ujon, vi povas atingi ripeteblan dosieron anstataŭi atakon sur la gastiga sistemo en nur kelkaj ripetoj. La ebleco de atako ŝuldiĝas al tio, ke kiam oni kopias en ujo, oni uzas la koncepton "chrootarchive", laŭ kiu la procezo archive.go ĉerpas la arkivon ne en la chroot de la ujo-radiko, sed en la chroot de la ujo. gepatra dosierujo de la cela vojo, kontrolita de la atakanto, kaj ne ĉesigas la ekzekuton de la ujo (chroot estas uzata kiel signo por ekspluati raskondiĉojn).
fonto: opennet.ru
