In Canonical LXD before 6.8, the backup import path validates project restrictions against backup/index.yaml in the supplied tar archive but creates the instance from backup/container/backup.yaml, a separate file in the same archive that is never checked against project restrictions. An authenticated remote attacker with instance-creation permission in a restricted project can craft a backup archive where backup.yaml carries restricted settings such as security.privileged=true or raw.lxc directives, bypassing all project restriction enforcement and allowing full host compromise.
{
"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"
}
]
}
{
"binaries": [
{
"binary_name": "golang-github-lxc-incus-dev",
"binary_version": "6.0.4-2"
},
{
"binary_name": "incus",
"binary_version": "6.0.4-2"
},
{
"binary_name": "incus-agent",
"binary_version": "6.0.4-2"
},
{
"binary_name": "incus-base",
"binary_version": "6.0.4-2"
},
{
"binary_name": "incus-client",
"binary_version": "6.0.4-2"
},
{
"binary_name": "incus-extra",
"binary_version": "6.0.4-2"
}
]
}
{
"binaries": [
{
"binary_name": "golang-github-lxc-incus-dev",
"binary_version": "6.0.5-8"
},
{
"binary_name": "incus",
"binary_version": "6.0.5-8"
},
{
"binary_name": "incus-agent",
"binary_version": "6.0.5-8"
},
{
"binary_name": "incus-base",
"binary_version": "6.0.5-8"
},
{
"binary_name": "incus-client",
"binary_version": "6.0.5-8"
},
{
"binary_name": "incus-extra",
"binary_version": "6.0.5-8"
}
]
}