CVE-2021-30465: runc are vulnerable to a symlink exchange attack
CVSS Score:
При успешной эксплуатации уязвимости атакующий получит
В первую очередь это критично для тех инфраструктур, где недоверенные пользователи могут запускать собственные контейнеры. Так как для успешной эксплотации атакующий должен контролировать конфигурацию
Чисто мое
В
CVSS Score:
7.6 High
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
В описании уязвимости (как по мне) вы увидите более запутанное название "mount destinations can be swapped via symlink-exchange to cause mounts outside the rootfs", за которым скрывается time-of-check-to-time-of-use (TOCTTOU)
проблема и специфика работы с symlink
.При успешной эксплуатации уязвимости атакующий получит
container escape
. При этом если даже на системе используются LSMs (AppArmor/SELinux)
и user namespaces, то они никак не остановят эксплотацию, а лишь помогут минимизировать возможный ущерб.В первую очередь это критично для тех инфраструктур, где недоверенные пользователи могут запускать собственные контейнеры. Так как для успешной эксплотации атакующий должен контролировать конфигурацию
volumes
и иметь возможность выполнить свой вредоносный код внутри этого контейнера. Как мы знаем Kubernetes
дает возможность при описании workload
такое сконфигурировать - точки монтирования из хоста в контейнер. И в k8s
данную уязвимость уже воспроизвели! При этом внешне данная конфигурация подозрительной не является, сигнатурами/правилами не описать. Это не как прямое монтирование /
внутрь контейнера, но эффект тот же ;) Чисто мое
IMHO
- некоторые априорные знания о системе и/или немного перебора могут позволить это провернуть и в контейнерах, которые созданы/подготовлены не злоумышленником, но имеют точки монтирования, и где у злоумышленника есть RCE
- но это еще нужно проверить...В
runc
уязвимость исправили в версии 1.0.0-rc95, а в containerd
, который его использует, в версиях 1.4.6
и 1.5.2.