Në setin e veglave për menaxhimin e kontejnerëve të izoluar Linux, Docker një vulnerabilitet (), i cili nën disa rrethana të caktuara, lejon aksesin në mjedisin host nga kontejneri nëse ka mundësinë për të ekzekutuar imazhet e tij në sistem ose nëse ka akses në kontejnerin në ekzekutim. Problemi shfaqet në të gjitha versionet e Docker dhe mbetet i pa riparuar (i propozuar, por ende i papranuar, , i cili implementon ndalimin e punës së kontejnerit gjatë ekzekutimit të operacioneve me FS).
Vulnerabiliteti lejon nxjerrjen e skedarëve nga kontejneri në një pjesë të rastësishme të FS të sistemit host, duke ekzekutuar komandën "docker cp". Nxjerrja e skedarëve kryhet me të drejtat e root, që jep mundësinë për të lexuar ose shkruar çdo skedar në mjedisin host, gjë që është e mjaftueshme për të fituar kontroll mbi sistemin host (p.sh., mund të ri-shkruhet /etc/shadow).
Sulmi mund të kryhet vetëm në momentin që administratori ekzekuton komandën "docker cp" për të kopjuar skedarë në kontejner ose nga ai. Kështu, sulmuesi duhet të bindë administratin e Docker në nevojën për ekzekutimin e kësaj operacioni dhe të parashikojë rrugën e përdorur gjatë kopjimit. Nga ana tjetër, sulmi mund të kryhet, për shembull, kur shërbimet cloud ofrojnë mjete për kopjimin e skedarëve të konfigurimit në kontejner, ndërtuar me përdorimin e komandës "docker cp".
Problemi është shkaktuar nga një keqpërdorim në aplikimin e funksionit , i cili llogarit rrugën absolute në FS-në kryesore mbi bazën e një rruge relative, që merr parasysh vendndodhjen e kontejnerit. Gjatë ekzekutimit të komandës "docker cp", ndodh një kohë e përkohshme , në të cilin rruga është verifikuar tashmë, por operacioni ende nuk është kryer. Duke qenë se kopjimi kryhet në kontekstin e FS-së kryesore të sistemit host, në atë periudhë të caktuar mund të bëhet ndërrimi i lidhjes në një rrugë tjetër dhe të niset kopjimi i të dhënave në një vend të rastësishëm të sistemit të skedarëve jashtë kontejnerit.
Duke qenë se dritarja përkohësore e shfaqjes së stresit të garës është shumë e kufizuar në prototipin e përgatitur gjatë kryerjes së operacioneve të kopjimit nga kontejneri arritëm të realizojmë një sulm të suksesshëm në më pak se 1% të rasteve gjatë zëvendësimit të ciklikshëm të lidhjes simbolike në rrugën e përdorur në operacionin e kopjimit (sulmi i suksesshëm u krye pas rreth 10 sekondash përpjekjesh të vazhdueshme për të kopjuar skedarin me urdhrin «docker cp»).
Gjatë kryerjes së operacionit të kopjimit në kontejner mund të arrihet një sulm i përsëritur për të shkruar skedarin në sistemin host me vetëm disa iteracione. Mundësia e sulmit lidhet me faktin se gjatë kopjimit në kontejner aplikohet koncepti «chrootarchive», sipas të cilit procesi archive.go nxjerr arkivimin jo në chroot të rrënjës së kontejnerit, por në chroot të katalogut prind të rrugës së synuar, që kontrollohet nga sulmuesi dhe nuk ndalon kryerjen e kontejnerit (chroot përdoret si një tregues për shfrytëzimin e një gjendjeje garuese).
Burimi: opennet.ru
