
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
файлаЭто, конечно, более чем достаточно для совершения побега из контейнера на хост.