Эксплуатация уязвимости происходит в тот момент, когда облачный контейнер извлекает вредоносный образ из реестра.
Уязвимость в одной из библиотек Go, на которой основано открытое программное обеспечение для оркестровки контейнеризированных приложений Kubernetes, может привести к состоянию «отказа в обслуживании» (DoS) контейнерных движков CRI-O и Podman.
Проблема (CVE-2021-20291) затрагивает библиотеку Go под названием containers/storage. По словам исследователя безопасности Авива Сассона (Aviv Sasson) из подразделения Unit 42 компании Palo Alto Networks, уязвимость можно использовать , поместив вредоносный образ в реестр. Попытка извлечь образ из реестра ничего не подозревающим пользователем приведет к состоянию «отказа в обслуживании».
«С помощью данной уязвимости злоумышленники могут поставить под угрозу любую контейнерную инфраструктуру, которая полагается на уязвимые движки контейнеров, включая Kubernetes и OpenShift», — сообщил Сассон.
CRI-O и Podman — образы контейнеров, похожие на Docker, которые используются для выполнения действий и управления контейнерами в облаке. Библиотека containers/storage используется движками CRI-O и Podman для управления процессами хранения и загрузки образов контейнеров.
В ходе эксплуатации уязвимости CRI-O не может извлекать новые образы, запускать новые контейнеры (даже если они уже извлечены), получать списки локальных образов или уничтожать контейнеры. В аналогичном случае Podman не может извлекать новые образы, извлекать запущенные модули, запускать новые контейнеры (даже если они уже извлечены), выполнять их в контейнерах, извлекать существующие образы или уничтожать существующие контейнеры.
«Злоумышленник может загрузить в реестр вредоносный уровень, который нацелен на использование уязвимости, а затем загрузить образ, использующий множество уровней, включая вредоносный. Затем, когда жертва начнет извлекать образ из реестра, она загрузит и вредоносный уровень в рамках данного процесса, вызывая уязвимость», — пояснил Сассон.
Как только контейнерный движок начинает загрузку вредоносного уровня, конечным результатом является сбой в процессе.
Уязвимость была исправлена в версии контейнера 1.28.1, версии CRI-O 1.20.2 и версии Podman 3.1.0.
Спойлер: она начинается с подписки на наш канал