Во пакет со алатки за управување со изолирани контејнери за докер на Linux ранливост (), што, под одреден сет на околности, ви овозможува пристап до околината на домаќинот од контејнер ако имате можност да ги стартувате вашите слики на системот или со пристап до контејнер што работи. Проблемот се појавува во сите верзии на Docker и останува нерешен (предложен, но сè уште не е прифатен, , кој ја спроведува суспензијата на контејнерот додека врши операции со FS).
Ранливоста дозволува датотеките да се извлечат од контејнер до произволен дел од датотечен систем на системот домаќин при извршување на командата „docker cp“. Извлекувањето на датотеки се врши со права на root, што овозможува читање или запишување на какви било датотеки во околината на домаќинот, што е доволно за да се добие контрола врз системот на домаќинот (на пример, можете да го презапишете /etc/shadow).
Нападот може да се изврши само кога администраторот ќе ја изврши командата „docker cp“ за да ги копира датотеките во или од контејнерот. Така, напаѓачот треба некако да го убеди администраторот на Docker за потребата да се изврши оваа операција и да ја предвиди патеката што се користи при копирање. Од друга страна, може да се изврши напад, на пример, кога облак услугите обезбедуваат алатки за копирање на конфигурациските датотеки во контејнер, изграден со помош на командата „docker cp“.
Проблемот е предизвикан од дефект во примената на функцијата , кој ја пресметува апсолутната патека во главниот датотечен систем врз основа на релативната патека, земајќи го предвид поставувањето на контејнерот. При извршувањето на командата „docker cp“, краткорочно , во која патеката е веќе потврдена, но операцијата сè уште не е извршена. Бидејќи копирањето се врши во контекст на главниот датотечен систем на системот домаќин, во одреден временски период, можете да успеете да ја замените врската со друга патека и да започнете копирање на податоците на произволна локација во датотечниот систем надвор од контејнер.
Бидејќи временскиот прозорец за појава на состојба на трката е многу ограничен во подготвеното При извршување операции за копирање од контејнер, беше можно да се постигне успешен напад во помалку од 1% од случаите кога циклично се заменува симболична врска на патеката што се користи во операцијата за копирање (успешниот напад беше извршен по приближно 10 секунди обиди континуирано да ја копирате датотеката во циклус со командата „docker cp“).
Со извршување на операција за копирање во контејнер, може да постигнете напад за презапишување датотека што може да се повтори на системот домаќин за само неколку повторувања. Можноста за напад се должи на фактот што при копирање во контејнер се користи концептот „chrootarchive“, според кој процесот archive.go ја извлекува архивата не во коренот на коренот на контејнерот, туку во коренот на родителскиот директориум на целната патека, контролиран од напаѓачот и не го запира извршувањето на контејнерот (chroot се користи како знак за искористување на условите на трката).
Извор: opennet.ru
