CVE-2026-24856: 
Homebrew vulnerability analysis and mitigation

Overview

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).

Technical details

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).

Impact

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).

Exploitability

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).

Exploitation steps

  1. Craft a malicious ICC profile XML: Create or obtain an ICC profile XML file containing NaN string values (e.g., 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.
  2. Deliver the file to the target: Social-engineer the victim into opening the malicious XML file with an application that uses the vulnerable iccDEV library (e.g., iccFromXml or any image-processing tool integrating iccDEV < 2.3.1.2).
  3. Trigger parsing: The application invokes iccFromXml <malicious.xml> output.icc, causing IccUtilXml.cpp lines 1044/1057 to cast nanf() to unsigned short, invoking undefined behavior.
  4. Memory corruption: The undefined behavior may corrupt adjacent memory structures (ICC tag tables, offsets, size fields), potentially redirecting execution flow.
  5. Achieve code execution: Depending on memory layout and platform, the corruption may be leveraged for arbitrary code execution in the context of the parsing process (GitHub Issue, GitHub Advisory).

Indicators of compromise

  • File System: Presence of unexpected or externally sourced ICC profile XML files (.xml) containing the string nan or -nan in numeric array fields; suspicious foo.icc or similarly named output files generated by iccFromXml.
  • Process: Crashes or abnormal termination of iccFromXml or image-processing applications using iccDEV, particularly with UndefinedBehaviorSanitizer output referencing IccXML/IccLibXML/IccUtilXml.cpp:1044 or :1057.
  • Logs: Application logs or crash reports containing messages such as runtime error: nan is outside the range of representable values of type 'unsigned short' or UndefinedBehaviorSanitizer: undefined-behavior IccXML/IccLibXML/IccUtilXml.cpp:1044.
  • Network: Downloads of files matching the known PoC filename ub-nan-outside-range-unsigned-int-IccUtilXml_cpp-Line1044.xml from external sources (GitHub Issue).

Mitigation and workarounds

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).

Community reactions

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).

Additional resources


Source: This report was generated using AI

Related Homebrew vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-112393CRITICAL9.2
  • Python logoPython
  • open-webui
NoYesOct 19, 2026
CVE-2026-112392HIGH8.2
  • Python logoPython
  • pillow-python2
NoYesOct 19, 2026
CVE-2026-112395HIGH8.2
  • Python logoPython
  • kubeflow-pipelines-visualization-server
NoYesOct 19, 2026
CVE-2026-112396HIGH7.5
  • Python logoPython
  • pillow-python2
NoYesOct 19, 2026
CVE-2026-112394MEDIUM6.3
  • Python logoPython
  • python-pillow
NoYesOct 19, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management