Incus — системный контейнер и менеджер виртуальных машин. До версии 7.3.0 принудительное применение ограничения `restricted.containers.privilege=isolated` на уровне проекта можно было тривиально обойти, что позволило пользователю создать неизолированный контейнер (с общим идентификатором хоста) в проекте, настроенном на их запрет. Ограничение отклоняет только явно установленный `security.idmap.isolated=false` (или пустой) и не обеспечивает ничего, если ключ полностью опущен.
Поскольку для неустановленного `security.idmap.isolated` по умолчанию установлено значение `false` (не изоляция), пользователь просто оставляет ключ и получает именно то состояние контейнера, которое ограничение должно запретить. Это нарушает гарантию изоляции арендатора, ради которой существует ограничение. Контейнеры в проекте используют карту uid/gid узла вместо получения уникальных, непересекающихся диапазонов, что ослабляет границу изоляции между контейнерами-совладельцами и узлом.
Версия 7.3.0 исправляет проблему.
Показать оригинальное описание (EN)
Incus is a system container and virtual machine manager. Prior to version 7.3.0, project-level enforcement of `restricted.containers.privilege=isolated` can be trivially bypassed, allowing a user to create a non-isolated (shared host idmap) container in a project that is configured to forbid them. The restriction only rejects an explicitly set `security.idmap.isolated=false` (or empty) and fails to enforce anything when the key is omitted entirely. Because an unset `security.idmap.isolated` defaults to `false` (non-isolation), a user simply leaves the key out and obtains exactly the container state the restriction is meant to forbid. This defeats the tenant-isolation guarantee the restriction exists to provide. Containers in the project share the host uid/gid map instead of receiving unique, non-overlapping ranges, weakening the isolation boundary between co-tenant containers and the host. Version 7.3.0 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1