
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-24856 is an undefined behavior vulnerability in the iccDEV library (maintained by the International Color Consortium) that arises when floating-point NaN values are incorrectly cast to unsigned short integer types during ICC profile XML parsing. This improper type conversion can corrupt memory structures and potentially enable arbitrary code execution. All versions of iccDEV prior to 2.3.1.2 are affected; version 2.3.1.2 contains the fix. The vulnerability was disclosed on January 28, 2026, and carries a CVSS v3.1 base score of 7.8 (High) (GitHub Advisory, Red Hat).
The root cause is an incorrect type conversion (CWE-681, CWE-704) combined with improper input validation (CWE-20) in IccXML/IccLibXML/IccUtilXml.cpp at lines 1044 and 1057. The CIccXmlArrayType::ParseText template function unconditionally casts the result of nanf() to the template type T, which is undefined behavior in C++ when T is an integer type such as unsigned short. An attacker can supply a crafted ICC profile XML file containing NaN string values in numeric array fields; when parsed by iccFromXml or any application using the iccDEV library, the NaN-to-integer cast triggers undefined behavior that may corrupt adjacent memory. The fix (PR #541, commit 5e53a5d) adds a compile-time std::is_floating_point<T>() check, flushing NaN to zero for integer types (GitHub Issue, GitHub PR, Patch Commit).
Successful exploitation can result in high-impact compromise of confidentiality, integrity, and availability on the affected system. An attacker who tricks a user into processing a maliciously crafted ICC profile XML file could achieve arbitrary code execution in the context of the application using the iccDEV library, potentially gaining full control of the affected process. Additionally, exploitation may allow manipulation of ICC tag tables, offsets, or size fields, triggering parsing faults or memory corruption in downstream image-processing libraries, or causing denial of service (GitHub Advisory).
The vulnerability requires local access and user interaction (e.g., opening a malicious ICC profile XML file), limiting its attack surface compared to remotely exploitable flaws. A public proof-of-concept XML file (ub-nan-outside-range-unsigned-int-IccUtilXml_cpp-Line1044.xml) was published by the reporter (xsscx) and is referenced in the GitHub issue, demonstrating the UndefinedBehaviorSanitizer-detected crash. No in-the-wild exploitation or threat actor attribution has been reported. The EPSS score is approximately 0.02% (very low), and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog (GitHub Issue, Feedly).
nan or -nan) within numeric array fields processed by CIccXmlArrayType::ParseText. A public PoC file is available at https://raw.githubusercontent.com/xsscx/fuzz/refs/heads/master/xml/icc/ub-nan-outside-range-unsigned-int-IccUtilXml_cpp-Line1044.xml.iccFromXml or any image-processing tool integrating iccDEV < 2.3.1.2).iccFromXml <malicious.xml> output.icc, causing IccUtilXml.cpp lines 1044/1057 to cast nanf() to unsigned short, invoking undefined behavior..xml) containing the string nan or -nan in numeric array fields; suspicious foo.icc or similarly named output files generated by iccFromXml.iccFromXml or image-processing applications using iccDEV, particularly with UndefinedBehaviorSanitizer output referencing IccXML/IccLibXML/IccUtilXml.cpp:1044 or :1057.runtime error: nan is outside the range of representable values of type 'unsigned short' or UndefinedBehaviorSanitizer: undefined-behavior IccXML/IccLibXML/IccUtilXml.cpp:1044.ub-nan-outside-range-unsigned-int-IccUtilXml_cpp-Line1044.xml from external sources (GitHub Issue).Upgrade iccDEV to version 2.3.1.2 or later, which contains the fix introduced in commit 5e53a5d (PR #541). The patch adds a compile-time type check to prevent NaN values from being assigned to integer buffer types, flushing them to zero instead. No workarounds are available for unpatched versions; upgrading is the only remediation (GitHub Advisory, Patch Commit).
The vulnerability was reported by security researcher xsscx on January 26, 2026, and fixed by contributor ChrisCoxArt within one day via PR #541, which was merged on January 27, 2026. Red Hat tracked the CVE through their security advisory system. Social media activity was limited to automated CVE notification posts on Bluesky. No significant broader media coverage or notable community debate has been identified (GitHub PR, Red Hat).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."