Мы активно следим за свежими уязвимостями для приложений, так или иначе относящихся к контейнерам или 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: