Description
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.
Problem types
CWE-20 Improper input validation
Product status
4.12.0 (semver) before 5.0.7
5.1.0 (semver) before 5.21.5
6.0.0 (semver) before 6.8.0
Credits
Miha Purg
References
github.com/...al/lxd/security/advisories/GHSA-q96j-3fmm-7fv4
github.com/...al/lxd/security/advisories/GHSA-q96j-3fmm-7fv4 (Importing a crafted backup leads to project restriction bypass)
github.com/canonical/lxd/pull/17921 (Import: Create backup config from index)