Компания Snyk обнаружила4 уязвимости в системах виртуализации, получившие общее название Leaky Vessels. Недостатки позволяют злоумышленнику выходить за пределы изолированных контейнеров и получать доступ к данным в операционной системе хоста.
Контейнеры – это приложения, упакованные в файл вместе со всеми зависимостями, исполняемыми файлами и кодом, необходимыми для их запуска. Они выполняются на платформах вроде Docker и Kubernetes в виртуализированной среде, изолированной от операционной системы. Уязвимость выхода из контейнера (container escape) возникает, когда атакующий или вредоносное приложение преодолевает изоляцию среды и получает несанкционированный доступ к хост-системе или другим контейнерам.
Обнаруженные уязвимости затрагивают инфраструктуру и инструменты сборки контейнеров runc и Buildkit, что потенциально позволяет атакующему осуществлять атаки типа “выход из контейнера” на различные программные продукты. Поскольку runc и Buildkit используются в широком круге популярных программ для управления контейнерами, таких как Docker и Kubernetes, риск атак значительно возрастает.
Демонстрация использования Leaky Vessels для доступа к данным на хосте
Уязвимости Leaky Vessels включают в себя следующие:
- CVE-2024-21626(оценка CVSS: 8.6): Ошибка, связанная с порядком выполнения команды WORKDIR в runc, позволяющая хакеру выйти за пределы изолированной среды контейнера и получить несанкционированный доступ к операционной системе хоста.
- CVE-2024-23651(оценка CVSS: 8.7): состояние гонки (race condition) при обработке кэша монтирования Buildkit, приводящее к непредсказуемому поведению и потенциально позволяющее атакующему манипулировать процессом для получения несанкционированного доступа.
- CVE-2024-23652 (оценка CVSS: 10.0): Уязвимость, позволяющая произвольно удалять файлы или директории во время фазы разборки контейнера Buildkit, что может привести к отказу в обслуживании (Denial of Service, • DOS (Disk Operating System) – это операционная система для персональных компьютеров, которая была широко распространена в 1980-х и начале 1990-х годов. DOS была разработана для управления операциями с жестким диском и другими устройствами хранения данных, такими как дискеты. DOS работает через командную строку, которая позволяет пользователю вводить команды на языке, понятному компьютеру. С помощью команд можно запускать приложения, перемещаться по файловой системе, создавать и удалять файлы, форматировать диски и многое другое.