Niezałatana podatność w Dockerze – może dać roota na głównym systemie

31 maja 2019, 11:52 | W biegu | 0 komentarzy
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

Podatność CVE-2018-15664 została upubliczniona przez jednego z inżynierów SUSE Linux. W pewnym uproszczeniu chodzi o podatność klasy race condition z użyciem linków symbolicznych. Z drugiej strony to podatność klasy TOCTOU. Np. jakaś operacja tworzy link symboliczny, jest on rozwiązywany na odpowiednią ścieżkę w kontenerze, w tym momencie go szybko podmieniamy na coś wskazującego na główną maszynę (poza kontenerem) – mamy na to minimalną ilość czasu – i ww. operacja używa już nowego linku (myśląc, że jest on bezpieczny).

Zatem przy pewnych warunkach można z kontenera uzyskać za pomocą linku symbolicznego dostęp do plików na głównym systemie (odczyt/zapis).

Do wykorzystania podatności najprawdopodobniej wystarczy mieć: a) dostęp do dowolnego kontenera lub b) udostępnić  odpowiednio spreparowany kontener.

Całość PoC-a to odpalenie dość prostego skryptu (załączonego do opisu podatności):

Jak pisze autor, pojedyncza szansa na „wygranie wyścigu” jest < 1%. Ale odpowiednio duża liczba iteracji robi to co trzeba (czyli nieautoryzowany dostęp jest realizowany w czasie około 10 sekund).

In the case of run_read.sh, I get a <1% chance of hitting the race condition (my attack script is quite dumb, it’s possible with better timing you’d be able to hit the race window much more effectively).
However <1% still means it only takes 10s of trying to get read access to the host with root permissions.

Obecny exploit wymaga użycia docker cp, ale różne osoby wskazują, że jest to tylko przykład i najprawdopodobniej dużo miejsc w samych dockerze jest podatnych.

–ms

 

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz