Në veglat për menaxhimin e kontejnerëve të izoluar Linux Docker vulneraibiliteti (), i cili në disa rrethana lejon qasjen në mjedisin e hostit nga kontejneri nëse ka mundësi për të drejtuar imazhe në sistem ose akses në një kontejner në ekzekutim. Problemi shfaqet në të gjitha versionet e Docker dhe mbetet i pa zgjidhur (propozuar, por ende i papranueshëm, , i cili realizon pezullimin e punës së kontejnerit gjatë kryerjes së operacioneve me FS).
Vulneraibiliteti lejon nxjerrjen e skedarëve nga kontejneri në çdo pjesë të FS të sistemit host gjatë ekzekutimit të komandës 'docker cp'. Nxjerrja e skedarëve bëhet me të drejtat root, duke lejuar kështu leximin ose shkruarjen e skedarëve të çdo lloji në mjedisin e hostit, gjë që mjafton për të fituar kontroll mbi sistemin host (për shembull, mund të rishkruhet /etc/shadow).
Sulmi mund të bëhet vetëm në momentin kur administratori ekzekuton komandën «docker cp» për të kopjuar skedarët në enë ose nga ajo. Kështu, sulmuesi duhet në njëfarë mënyre të bindë administratorin e Dockerit për nevojën e ekzekutimit të kësaj operacioni dhe të parashikojë rrugën e përdorur gjatë kopjimit. Nga ana tjetër, sulmi mund të realizohet, për shembull, kur shërbimet cloud ofrojnë mjete për kopjimin e skedave të konfigurimit në enë, të ndërtuara duke përdorur komandën «docker cp».
Problemi shkaktohet nga një mangësi në aplikimin e funksionit , i cili llogarit rrugën absolute në sistemin kryesor të skedarëve në bazë të një rruge relative, duke marrë parasysh vendndodhjen e enës. Gjatë realizimit të komandës «docker cp» ndodh një gjendje e shkurtër , gjatë së cilës rruga është kontrolluar tashmë, por operacioni ende nuk është kryer. Pasi kopjimi bëhet në kontekstin e sistemit kryesor të skedarëve të sistemit mikpritës, në atë interval kohe është e mundur të zëvendësohet lidhja me një rrugë tjetër dhe të nisni kopjimin e të dhënave në një vend të çfarëdo të sistemit të skedarëve jashtë enës.
Duke që dritarja për manifestimin e gjendjes së garës është shumë e kufizuar në prototipin e eksploitit Gjatë kryerjes së operacionit të kopjimit në kontejner, është e mundur të arrihet një sulm përsëritës për mbivendosjen e skedarit në sistemin pritës me disa iteracione. Mundësia e sulmit lidhet me faktin se gjatë kopjimit në kontejner aplikohet koncepti «chrootarchive», sipas të cilit procesi archive.go nxjerr arkivin jo në chrootin e rrënjës së kontejnerit, por në chrootin e direktoriumit prind të rrugës së synuar, që është nën kontrollin e sulmuesit dhe nuk ndalon ekzekutimin e kontejnerit (chroot përdoret si një shenjë për shfrytëzimin e gjendjes së garës).
Gjatë operacionit të kopjimit në kontejner, mund të arrihet një sulm i përsëritur për të shkruar përsëri një skedari në sistemin host në vetëm disa iteracione. Mundësia e sulmit ka të bëjë me faktin se gjatë kopjimit në kontejner aplikohet koncepti "chrootarchive", sipas të cilit procesi archive.go nxjerr arkivën jo në chroot të rrënjës së kontejnerit, por në chroot të katalogut prind të rrugës së synuar, që është nën kontrollin e sulmuesit, dhe nuk ndalon ekzekutimin e kontejnerit (chroot përdoret si një tregues për shfrytëzimin e gjendjes së garës).
Burimi: opennet.ru
