, альтернативном runtime для управления изолированными контейнерами, выявлена критическая уязвимость (CVE-2022-0811), позволяющая обойти изоляцию и выполнить свой код на стороне хост-системы. В случае использования CRI-O вместо Docker для организации запуска контейнеров, работающих под управлением платформы Kubernetes, атакующий может получить контроль над любым узлом в кластере Kubernetes. Для проведения атаки достаточно прав для запуска своего контейнера в кластере Kubernetes.
Уязвимость вызвана возможностью изменения sysctl-параметра ядра “kernel.core_pattern” (“/proc/sys/kernel/core_pattern”), доступ к которому не блокировался, несмотря на то, что он не входит в число безопасных для изменения параметров, действующих только в пространстве имён текущего контейнера. При помощи данного параметра пользователь из контейнера может изменить поведение ядра Linux в отношении обработки core-файлов на стороне хост-окружения и организовать запуск произвольной команды с правами root на стороне хоста, указав обработчик типа “|/bin/sh -c ‘команды'”.
Проблема проявляется начиная с выпуска CRI-O 1.19.0 и устранена в обновлениях 1.19.6, 1.20.7, 1.21.6, 1.22.3, 1.23.2 и 1.24.0. Из дистрибутивов проблема проявляется в продуктах Red Hat OpenShift Container Platform и openSUSE/SUSE, в репозиториях которых имеется пакет cri-o.