Linux - CVE-2019-5736 позволяет выйти за пределы контейнера

В runc, инструментарии для запуска изолированных контейнеров, выявлена критическая уязвимость (CVE-2019-5736), позволяющая из подконтрольного злоумышленнику изолированного контейнера изменить исполняемый файл runc и получить root-привилегии на стороне хост-системы. Уязвимость затрагивает все системы контейнерной изоляции, использующие runtime runc, включая Docker, cri-o, containerd, Kubernetes, Podman и flatpak. Также отмечается, что аналогичная уязвимость присутствует в инструментариях LXC и Apache Mesos.

Суть уязвимости в возможности запуска исполняемого файла runc в окружении контейнера, но его обработки в контексте хост-системы. Например, атакующий может заменить /bin/bash в контейнере на скрипт с заголовком "#!/proc/self/exe" или использовать подставную разделяемую библиотеку. При выполнении "docker exec" и запуске runtime-ом подменённого /bin/bash внутри контейнера будет выполнен файл /proc/self/exe, который на данной стадии ссылается на исполняемый файл runtime (runc) в хост-окружении. После этого атакующий может через модификацию /proc/self/exe внутри контейнера внести изменение в исполняемый файл runc на стороне хост-системы.

Для проведения атаки требуется выполнение пользователем с правами root операции создания нового контейнера на основе подготовленного атакующим образа или подключения к существующему контейнеру (достаточно выполнения "docker exec"), к которому ранее атакующий имел доступ на запись. Проблема не блокируется профилем по умолчанию AppArmor и правилами SELinux в Fedora (процессы контейнера запускаются в контексте container_runtime_t). При этом проблема не проявляется при корректном использованием пространств имён идентификаторов пользователя (user namespaces) или при использовании режима "enforcing" SELinux в RHEL 7.

Уязвимость уже устранена в RHELFedora и Ubuntu, но остаётся неисправленной в Debian и SUSE. Решающие проблему патчи подготовлены для runc и LXC. Рабочий прототип эксплоита планируют опубликовать 18 февраля.

Решающие проблему патчи подготовлены для runc и LXC. Рабочий прототип эксплоита планируют опубликовать 18 февраля.

Оригинал: https://seclists.org/oss-sec/2019/q1/119
Взято © https://www.opennet.ru/opennews/art.shtml?num=50130