Canonical LXD versions 4.12 through 6.7 contain an incomplete denylist in isVMLowLevelOptionForbidden (lxd/project/limits/permissions.go), which omits raw.apparmor and raw.qemu.conf from the set of keys blocked under the restricted.virtual-machines.lowlevel=block project restriction. A remote attacker with can_edit permission on a VM instance in a restricted project can inject an AppArmor rule and a QEMU chardev configuration that bridges the LXD Unix socket into the guest VM, enabling privilege escalation to LXD cluster administrator and subsequently to host root.
{
"binaries": [
{
"binary_name": "golang-github-lxc-incus-dev",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
},
{
"binary_name": "incus",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
},
{
"binary_name": "incus-agent",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
},
{
"binary_name": "incus-client",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
},
{
"binary_name": "incus-migrate",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
},
{
"binary_name": "incus-tools",
"binary_version": "6.0.0-1ubuntu0.3+esm3"
}
]
}