Incus has a Nil-Pointer Dereference Panic via Instance Backup Import (volume omitted)
Date: 2026-06
Affected: go/github.com/lxc/incus/v7
Attack vector: dos
Category: vulnerability-disclosure
Severity: Medium
CVE: CVE-2026-47753
CWE: CWE-476

## Summary `(*backend).CreateInstanceFromBackup` in [`internal/server/storage/backend.go`](https://github.com/lxc/incus/blob/1513600/internal/server/storage/backend.go) contains a nil-pointer dereference that an authenticated user with permission to create instances in any project can trigger remotely by uploading a crafted backup tarball. The Incus daemon panics and the process crashes, causing denial of service to every project on that cluster member. This is a sibling of `GHSA-fwj8-62r8-8p8m`, `GHSA-r7w7-mmxr-47r9`, and `GHSA-x5r6-jr56-89pv` (all assigned 2026-05-04). Those patches added guards on adjacent fields of the same `backup/config.Config` struct; the `Volume` field on the instance-import path was missed. ## Vulnerable code [`internal/server/storage/backend.go`](https://github.com/lxc/incus/blob/1513600/internal/server/storage/backend.go) (current `main`, commit `1513600`): ```go // Lines 763-767 — properly guarded: var volumeConfig map[string]string if srcBackup.Config != nil && srcBackup.Config.Volume != nil { volumeConfig = srcBackup.Config.Volume.Config } // ... a few lines later ... // Line 795 — unguarded, dereferences Config.Volume directly: if srcBackup.Config.Volume.Config["block.type"] == drivers.BlockVolumeTypeQcow2 { ``` The caller `createFromBackup` in [`cmd/incusd/instances_post.go`](https://github.com/lxc/incus/blob/1513600/cmd/incusd/instances_post.go) only verifies that `Config` and `Config.Container` are non-nil: ```go // instances_po


Mitigations:

Architectural layers (MAESTRO):