Dalam Kit Alat untuk Menguruskan Bekas Docker Linux Terpencil kelemahan (), yang, di bawah satu set keadaan tertentu, membolehkan anda mengakses persekitaran hos daripada bekas jika anda mempunyai keupayaan untuk melancarkan imej anda pada sistem atau dengan akses kepada bekas yang sedang berjalan. Masalahnya muncul dalam semua versi Docker dan kekal tidak dibetulkan (dicadangkan, tetapi belum diterima, , yang melaksanakan penggantungan kontena semasa menjalankan operasi dengan FS).
Kerentanan membolehkan fail diekstrak daripada bekas ke bahagian sewenang-wenangnya sistem fail sistem hos apabila melaksanakan arahan "docker cp". Pengekstrakan fail dilakukan dengan hak akar, yang membolehkan anda membaca atau menulis sebarang fail dalam persekitaran hos, yang cukup untuk mengawal sistem hos (contohnya, anda boleh menulis ganti /etc/shadow).
Serangan hanya boleh dilakukan apabila pentadbir melaksanakan perintah "docker cp" untuk menyalin fail ke atau dari bekas. Oleh itu, penyerang perlu entah bagaimana meyakinkan pentadbir Docker tentang keperluan untuk melaksanakan operasi ini dan meramalkan laluan yang digunakan semasa menyalin. Sebaliknya, serangan boleh dilakukan, sebagai contoh, apabila perkhidmatan awan menyediakan alat untuk menyalin fail konfigurasi ke dalam bekas, dibina menggunakan arahan "docker cp".
Masalahnya disebabkan oleh kecacatan dalam aplikasi fungsi , yang mengira laluan mutlak dalam sistem fail utama berdasarkan laluan relatif, dengan mengambil kira penempatan bekas. Semasa melaksanakan arahan "docker cp", jangka pendek , di mana laluan telah disahkan, tetapi operasi belum lagi dilakukan. Memandangkan penyalinan dijalankan dalam konteks sistem fail utama sistem hos, dalam tempoh masa tertentu, anda boleh menguruskan untuk menggantikan pautan dengan laluan lain dan memulakan penyalinan data ke lokasi sewenang-wenangnya dalam sistem fail di luar bekas itu.
Memandangkan tetingkap masa untuk keadaan perlumbaan berlaku adalah sangat terhad dalam persediaan Apabila melakukan operasi salin daripada bekas, adalah mungkin untuk mencapai serangan yang berjaya dalam kurang daripada 1% kes apabila secara kitaran menggantikan pautan simbolik dalam laluan yang digunakan dalam operasi salin (serangan yang berjaya dilakukan selepas kira-kira 10 saat percubaan untuk terus menyalin fail dalam gelung dengan arahan "docker cp").
Dengan melakukan operasi salin ke dalam bekas, anda boleh mencapai serangan tulis ganti fail berulang pada sistem hos hanya dalam beberapa lelaran. Kemungkinan serangan adalah disebabkan oleh fakta bahawa apabila menyalin ke dalam bekas, konsep "chrootarchive" digunakan, mengikut mana proses archive.go mengekstrak arkib bukan ke dalam chroot akar kontena, tetapi ke dalam chroot of the direktori induk laluan sasaran, dikawal oleh penyerang, dan tidak menghentikan pelaksanaan bekas (chroot digunakan sebagai tanda untuk mengeksploitasi keadaan perlumbaan).
Sumber: opennet.ru
