A Docker izolált Linux-konténerek kezelésére szolgáló eszköztárában vulnerability (), amely bizonyos körülmények között lehetővé teszi a hozzáférést a gazda környezethez a konténerből, ha van lehetőség saját képek futtatására a rendszerben, vagy ha hozzáférés van a futó konténerhez. A probléma minden Docker verzióban megjelenik, és még nem javították (javasolt, de még nem elfogadott, , amely felfüggeszti a konténer munkáját a fájlrendszerrel végzett műveletek idejére).
A sebezhetőség lehetővé teszi fájlok kivonását a konténerből a gazdagép fájlrendszerének tetszőleges részébe a „docker cp” parancs végrehajtásával. A fájlok kivonása root jogosultságokkal történik, ami lehetővé teszi bármely fájl olvasását vagy írását a gazda környezetében, ami elegendő a gazda rendszer feletti ellenőrzés megszerzéséhez (például felül lehet írni a /etc/shadow fájlt).
A támadás csak abban az időben valósítható meg, amikor az adminisztrátor a „docker cp” parancsot használja fájlok konténerbe történő másolására vagy onnan. Ezért a támadónak valamilyen módon meg kell győznie a Docker adminisztrátort ennek a műveletnek a szükségességéről, és meg kell előre jeleznie a másolás során használt útvonalat. Másrészt a támadást például a felhőszolgáltatók által a konfigurációs fájlok konténerbe másolására szolgáló eszközök biztosításával is meg lehet valósítani, amelyeket a „docker cp” parancs használatával építettek.
A probléma a funkció alkalmazásának hiányosságából adódik, amely a relatív útvonal alapján számolja ki az abszolút utat a fő fájlrendszerben, figyelembe véve a konténer elhelyezkedését. A „docker cp” parancs végrehajtása során rövid ideig , amely során az útvonal már ellenőrizve lett, de a művelet még nem hajtódott végre. Mivel a másolás a gazdarendszer fő fájlrendszerének kontextusában történik, ebben az időszakban lehetséges kicserélni egy hivatkozást egy másik útra, és elindítani az adatok másolását a konténeren kívüli fájlrendszer tetszőleges helyére.
Mivel a versengő állapot megnyilvánulásának ideiglenes ablaka erősen korlátozott egy készített A másolási műveletek során a konténerből sikerült a szimbolikus hivatkozás ciklikus átirányításával kevesebb mint 1%-os sikerességgel végrehajtani a támadást, amelyet körülbelül 10 másodperc folyamatos próbálkozás után hajtottak végre a „docker cp” parancs használatával fájl másolására.
A konténerbe történő fájl másolás során egy ismétlődő támadást lehet végrehajtani a házigazda rendszeren történő fájl felülírására már néhány iterációval. A támadás lehetősége azzal függ össze, hogy amikor a konténerbe másolnak, a „chrootarchive” koncepciót alkalmazzák, amely szerint a process archive.go nem a konténer gyökér chroot-jába, hanem a cél elérési útjának szülő könyvtárába kicsomagolja az archívumot, amely az támadó ellenőrzése alatt áll, és nem állítja le a konténer végrehajtását (a chroot a versenyhelyzet kihasználásának jelzője).
Forrás: opennet.ru
