Security Vulnerability Report
中文
CVE-2026-33542 CVSS 4.8 MEDIUM

CVE-2026-33542

Published: 2026-03-26 23:16:20
Last Modified: 2026-03-30 18:48:50

Description

Incus is a system container and virtual machine manager. Prior to version 6.23.0, a 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. Version 6.23.0 patches the issue.

CVSS Details

CVSS Score
4.8
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:linuxcontainers:incus:*:*:*:*:*:*:*:* - VULNERABLE
Incus < 6.23.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Conceptual PoC for CVE-2026-33542 # This script simulates a vulnerable client downloading an image # without verifying the fingerprint against the content hash. import hashlib class VulnerableIncusClient: def download_image(self, image_url, expected_fingerprint): print(f"[*] Downloading image from {image_url}...") # Simulate downloading image content (could be malicious) # In a real attack, this content might be served by a malicious simplestreams server image_content = b"MALICIOUS_CONTAINER_PAYLOAD_HERE" print(f"[*] Expected Fingerprint: {expected_fingerprint}") # VULNERABILITY: The client does NOT calculate the hash of image_content # and compare it with expected_fingerprint. # A secure implementation would do: # actual_hash = hashlib.sha256(image_content).hexdigest() # if actual_hash != expected_fingerprint: # raise Exception("Security Alert: Fingerprint mismatch!") print("[!] VULNERABLE: Storing image to cache without fingerprint verification.") self.cache[image_url] = image_content return True # Usage Example client = VulnerableIncusClient() client.cache = {} # Attacker provides a malicious image but claims it has a legitimate fingerprint client.download_image("http://example.com/image.iso", "sha256:legitimate_image_hash...") print("[!] Exploit successful: Cache poisoned with malicious image.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33542", "sourceIdentifier": "[email protected]", "published": "2026-03-26T23:16:20.113", "lastModified": "2026-03-30T18:48:50.393", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Incus is a system container and virtual machine manager. Prior to version 6.23.0, a 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. Version 6.23.0 patches the issue."}, {"lang": "es", "value": "Incus es un gestor de contenedores de sistema y máquinas virtuales. Antes de la versión 6.23.0, una falta de validación de la huella digital de la imagen al descargar desde servidores de imágenes simplestreams abre la puerta al envenenamiento de la caché de imágenes y, bajo circunstancias muy estrechas, expone a otros inquilinos a ejecutar imágenes controladas por el atacante en lugar de la esperada. La versión 6.23.0 parchea el problema."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N/SC:L/SI:H/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.7, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "attackRequirements": "PRESENT", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "LOW", "subIntegrityImpact": "HIGH", "subAvailabilityImpact": "NONE", "exploitMaturity": "PROOF_OF_CONCEPT", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 4.8, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.2, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-295"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:linuxcontainers:incus:*:*:*:*:*:*:*:*", "versionEndExcluding": "6.23.0", "matchCriteriaId": "CBE3ABCB-1D47-4A45-A09A-C9F609C53131"}]}]}], "references": [{"url": "https://github.com/lxc/incus/security/advisories/GHSA-p8mm-23gg-jc9r", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}]}}