V sadě nástrojů pro správu izolovaných kontejnerů Linux Docker zranitelnost (), který vám za určitých okolností umožňuje přistupovat k hostitelskému prostředí z kontejneru, pokud máte možnost spouštět své obrazy v systému nebo s přístupem k běžícímu kontejneru. Problém se objevuje ve všech verzích Dockeru a zůstává neopravený (navržen, ale dosud nepřijat, , která realizuje zavěšení kontejneru při provádění operací s FS).
Tato chyba zabezpečení umožňuje extrahování souborů z kontejneru do libovolné části souborového systému hostitelského systému při provádění příkazu „docker cp“. Extrakce souborů se provádí s právy root, což umožňuje číst nebo zapisovat libovolné soubory v hostitelském prostředí, což stačí k získání kontroly nad hostitelským systémem (můžete například přepsat /etc/shadow).
Útok lze provést pouze tehdy, když správce provede příkaz „docker cp“ ke zkopírování souborů do nebo z kontejneru. Útočník tedy potřebuje nějak přesvědčit správce Dockeru o nutnosti provést tuto operaci a předpovědět cestu použitou při kopírování. Na druhou stranu může být útok proveden například tehdy, když cloudové služby poskytují nástroje pro kopírování konfiguračních souborů do kontejneru sestaveného pomocí příkazu „docker cp“.
Problém je způsoben chybou v aplikaci funkce , který vypočítá absolutní cestu v hlavním souborovém systému na základě relativní cesty s přihlédnutím k umístění kontejneru. Při provádění příkazu "docker cp" krátkodobě , ve kterém již byla cesta ověřena, ale operace ještě nebyla provedena. Vzhledem k tomu, že kopírování se provádí v kontextu hlavního souborového systému hostitelského systému, můžete během stanovené doby zvládnout nahradit odkaz jinou cestou a zahájit kopírování dat na libovolné místo v systému souborů mimo kontejner.
Vzhledem k tomu, že časové okno pro výskyt sporu je v připraveném velmi omezené Při provádění operací kopírování z kontejneru bylo možné dosáhnout úspěšného útoku v méně než 1 % případů při cyklickém nahrazování symbolického odkazu v cestě použité při operaci kopírování (úspěšný útok byl proveden přibližně po 10 sekundách pokusů pro nepřetržité kopírování souboru ve smyčce pomocí příkazu „docker cp“).
Provedením operace kopírování do kontejneru můžete dosáhnout opakovatelného útoku přepsáním souboru na hostitelský systém v několika iteracích. Možnost útoku je způsobena tím, že při kopírování do kontejneru se používá koncept „chrootarchive“, podle kterého proces archive.go extrahuje archiv nikoli do chrootu kořene kontejneru, ale do chrootu nadřazený adresář cílové cesty, kontrolovaný útočníkem, a nezastaví provádění kontejneru (chroot se používá jako znamení pro zneužití podmínek závodu).
Zdroj: opennet.ru
