Díra je v tom, že pokud má usere(lowlevel) ve skupině docker nebo LXD/LXC můžeš přes kontejner(který si rozjedes) přistupovat k hostiteli jako root. Takže privilege escalation
Vytvoreni souboru s pravy roota uvnitr slozky, kterou predem definuji jako sdilenou mezi hostitelem/kontejnerem, ale neni privilege escalation....
To ze vytvorim soubor, co patri rootovi, prece jeste neznamena, ze ho dokazi jako root hostitele i spustit....
Co mi prosim unika?
problém je, že si takhle můžeš vytvořit soubor pod rootem a ještě mu dát suid bit, to pak je privilege escalation. Omezování cest, které se dají mountnout nemá valný smysl. Tohle je triviální příklad, problém je, že komunikuješ s docker daemon, který má prává roota a defakto neexistují mechanismy, které by to dokázaly nějak efektivně omezit, vše jsou jen obezličky a workaroundy. Docker není bezpečné prostředí pro spouštění cizího kódu.
Jednoduché to nemají ani cloudy, však azure, aws už měli několik průníků právě díky tomu, jak docker a docker registry fungují
. Nejhorší je, že to není nová věc, to tady je od začátku, od začátku to je známé a zdokumentované, od začátku byl tak docker vytvořen, ale pak příjde nová generace, zapomene se na to a ouha, problém je na světě. Docker měl být od začátku jako nástroj pro roota, stejně jako jsou tady jiné technologie a ne že tady má zadní vrátka přes root socket pod skupinou docker a ještě v návodech ti říká, přidej si skupinu docker, budeš king. Pak tohle chování není vůbec vidět, je schované a víme, že schovávat cokoliv, co má ultimátní oprávnění je vždy špatně. Kdyby se docker musel volat se sudo, hned to každého trkne, to že to obchází je kardiální chyba autorů dockeru.