CVE-2026-21499: 
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21499 is a NULL pointer dereference vulnerability in the XML parser of iccDEV, an open-source library and toolset for interacting with ICC color management profiles maintained by the International Color Consortium. All versions prior to 2.3.1.2 are affected, with the vulnerable code residing in IccXML/IccLibXML/IccProfileXml.cpp at line 477. The vulnerability was reported on December 29, 2025, patched on January 2, 2026, and publicly disclosed on January 7, 2026. It carries a CVSS v3.1 base score of 5.5 (Medium) (GitHub Advisory, Feedly).

Technical details

The root cause is improper input validation (CWE-20) combined with an unchecked return value leading to a NULL pointer dereference (CWE-476, CWE-690) in the CIccProfileXml::ParseBasic() function. Specifically, the code at IccProfileXml.cpp:477 accesses pNode->children->content when parsing the <RenderingIntent> XML element without first verifying that pNode->children is non-NULL. An attacker can craft a malicious ICC XML profile file with an empty or malformed <RenderingIntent> element, which causes the parser to dereference a null pointer. Exploitation requires local access and user interaction — a user or application must open or process the crafted XML-based ICC profile file (GitHub Advisory, GitHub Issue #372, Fix Commit).

Impact

Successful exploitation causes a denial of service (DoS) by crashing any application that uses the vulnerable iccDEV library to process a malicious ICC XML profile. There is no impact to confidentiality or data integrity — only availability is affected. The scope is limited to the vulnerable application process; there is no evidence of potential for lateral movement or privilege escalation from this vulnerability (GitHub Advisory, Feedly).

Exploitability

A proof-of-concept (PoC) is publicly available via the GitHub issue report (#372), which demonstrates triggering the crash using the iccFromXml tool with a crafted XML file (GitHub Issue #372). There is no evidence of active in-the-wild exploitation, no known threat actor attribution, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.018%, reflecting a very low probability of exploitation in the near term (Feedly).

Exploitation steps

  1. Craft a malicious ICC XML profile: Create an XML-based ICC color profile file (.xml) containing a <RenderingIntent> element with no child content (empty tag), e.g., <RenderingIntent></RenderingIntent> or a self-closing <RenderingIntent/>.
  2. Deliver the file to the target: Social-engineer a user into opening the malicious file with an application that uses the iccDEV library (e.g., via email attachment, download, or shared storage).
  3. Trigger parsing: The target application invokes iccFromXml or an equivalent iccDEV XML parsing routine, which calls CIccProfileXml::ParseBasic() on the malicious file.
  4. Trigger NULL dereference: The parser reaches the RenderingIntent handling code at IccProfileXml.cpp:477 and attempts to access pNode->children->content without checking if pNode->children is NULL, causing an undefined behavior runtime error and application crash (GitHub Issue #372, GitHub Advisory).

Indicators of compromise

  • Process: Application crash or unexpected termination of any process using the iccDEV library when processing an ICC XML profile file.
  • Logs: UndefinedBehaviorSanitizer (UBSan) output such as IccXML/IccLibXML/IccProfileXml.cpp:477:46: runtime error: member access within null pointer of type 'struct _xmlNode' in application logs or stderr.
  • File System: Presence of unexpected or externally sourced .xml ICC profile files in directories monitored by color management applications.
  • Crash Reports: Core dump files or crash reports generated by the application process at the time of parsing a malicious ICC XML profile (GitHub Issue #372).

Mitigation and workarounds

Update iccDEV to version 2.3.1.2 or later, which includes the fix introduced in commits 00c0301 and af29989 that add NULL checks before dereferencing pNode and pNode->children in the ParseBasic() function (Fix Commit, GitHub Advisory). No official workaround is provided by the vendor; as an interim measure, restrict processing of ICC XML profile files from untrusted or unknown sources and educate users to avoid opening color profiles from suspicious origins (Feedly).

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