Мы активно следим за свежими уязвимостями для приложений, так или иначе относящихся к контейнерам или Kubernetes, и со временем стало понятно, что ресерчеры из WIZ не прекратили своё исследование и обнаружили ещё несколько уязвимостей (в том числе High) в NVIDIA Container Toolkit:
— CVE-2024−0132
— CVE-2024−0135
— CVE-2024−0136
— CVE-2024−0137
Но давайте вернёмся к нашей уязвимости. Никаких технических подробностей исследователи не опубликовали, но тем не менее стала понятна цепочка attack flow:
— Нужно создать специально сконфигурированный образ для эксплуатации уязвимости
— После запуска образа хостовая файловая система (или часть её) будет примонтирована внутрь контейнера
— В результате примонтирования хостовой файловой системы у злоумышленника появляется доступ к Container Runtime socket, что даёт возможность полностью захватить хост и выполнять команды с root привилегиями
NVIDIA Container Toolkit использует библиотеку libnvidia container, в которой как раз таки была найдена уязвимость.
Патч вышел в версии 1.16.2 поэтому были просмотрены
все изменения, которые были внесены.
К счастью, коммитов оказалось не так много, поэтому мы без труда смогли найти
нужный нам. Название и описание коммита открыло для нас тот факт, что эксплуатация уязвимости связана с неправильным разыменованием symlinks для библиотек из директории compat: