CVE-2020-15257: containerd – containerd-shim API Exposed to Host Network Containers



Атакующий способен совершить побег из контейнера, поднять привилегии и скомпрометировать хост/ноду.



Все это возможно в условиях и благодаря, если:

- hostNetwork: true для Pod

- контейнер работает от root

- контейнер работает в host user namespace (сейчас это не исправить, но работа над этим кипит в keps/127: Support User Namespaces)



А проблема крутиться вокруг того, что containerd-shim использует abstract Unix domain sockets, который в отличие от normal Unix domain sockets привязан к network namespace процесса, а не к файлу.



В итоге злоумышленник из контейнера может делать такие операции как:

- Чтение/добавление/запись произвольного файла хоста

- Выполнение произвольных команд в контексте containerd-shim (root) на хосте

- Создание и запуск контейнера из runc config.json файла

Это, конечно, более чем достаточно для совершения побега из контейнера на хост.