Уязвимость в RunC позволяет выполнить код с правами суперпользователя на хостах Docker

Уязвимость в RunC позволяет выполнить код с правами суперпользователя на хостах Docker

Проблема затрагивает все системы контейнерной изоляции, использующие RunC, включая Docker, containerd, Podman и CRI-O.

В инструменте для запуска изолированных контейнеров RunC выявлена критическая уязвимость (CVE-2019-5736), предоставляющая злоумышленнику возможность из вредоносного контейнера изменить исполняемый файл RunC и получить права суперпользователя на хост-системе. Проблема затрагивает все системы контейнерной изоляции, использующие RunC, включая Docker, containerd, Podman и CRI-O. Как отмечается, похожая уязвимость также присутствует в инструментах LXC и Apache Mesos.

Для осуществления атаки необходимо, чтобы пользователь с привилегиями суперпользователя создал новый контейнер на основе подконтрольного атакующему образа или подключился к существующему контейнеру (достаточно выполнения docker exec), к которому злоумышленник ранее имел доступ на запись.

Проблема не блокируется политикой по умолчанию AppArmor и правилами SELinux в Fedora (поскольку процессы контейнера запускаются в контексте container_runtime_t). Тем не менее уязвимость не проявляется при корректном использовании пространств имен идентификатора пользователя (user namespaces)

Мейтейнер RunC Алекса Сараи (Aleksa Sarai) опубликовал патч, исправляющий уязвимость. Проблема уже устранена RHEL , Fedora и Ubuntu , но остается актуальной для Debian и SUSE. Публикация PoC-кода для данной уязвимости запланирована на 18 февраля нынешнего года.


Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!