CVE-2026-21498
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21498 is a NULL pointer dereference vulnerability in the iccDEV library's XML calculator parser that can cause application crashes and denial of service. iccDEV, maintained by the International Color Consortium, provides libraries and tools for interacting with ICC color management profiles. All versions prior to 2.3.1.2 are affected; the issue was reported on December 29, 2025, patched on January 1, 2026, and publicly disclosed on January 7, 2026. It carries a CVSS v3.1 base score of 5.5 (Medium) (GitHub Advisory).

Technical details

The vulnerability is rooted in improper input validation (CWE-20) and an unchecked return value leading to a NULL pointer dereference (CWE-476, CWE-690) within the CIccMpeXmlCalculator::ParseXml() function in IccXML/IccLibXML/IccMpeXml.cpp at line 3123. When the function receives a NULL pNode pointer — which can occur when processing a malformed XML ICC profile — it proceeds to dereference the pointer without first checking for NULL, triggering a segmentation fault. Exploitation requires local access and user interaction: a victim must process a specially crafted XML ICC profile file (e.g., via the iccFromXml command-line tool). A proof-of-concept XML file demonstrating the crash is publicly available (GitHub Issue #375, GitHub Advisory).

Impact

Successful exploitation results in an application crash (SEGV/segmentation fault) due to a read from a NULL memory address, causing a denial of service with high availability impact. There is no impact to confidentiality or data integrity, and the vulnerability's scope is limited to the affected process. The vulnerability does not enable remote code execution, privilege escalation, or lateral movement (GitHub Advisory).

Exploitability

A proof-of-concept XML file (npd-CIccMpeXmlCalculator-ParseXml-ub-load-null-ptr.xml) is publicly available on GitHub and was used to reproduce the crash during initial disclosure. There is no evidence of in-the-wild exploitation, no known threat actor attribution, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. The EPSS score is approximately 0.018% (0.000180), reflecting very low probability of exploitation in the near term (GitHub Issue #375, Feedly).

Exploitation steps

  1. Obtain the PoC payload: Download the publicly available malformed XML ICC profile from the researcher's repository: wget https://raw.githubusercontent.com/xsscx/Commodity-Injection-Signatures/refs/heads/master/xml/icc/npd-CIccMpeXmlCalculator-ParseXml-ub-load-null-ptr.xml
  2. Identify a vulnerable target: Confirm the target system is running iccDEV version prior to 2.3.1.2 with the iccFromXml tool or any application that uses the iccDEV XML parsing library.
  3. Deliver the malicious file: Provide the crafted XML file to the target user or application that will process it (e.g., via email attachment, shared file system, or web upload if the application accepts ICC profiles).
  4. Trigger the crash: Execute iccFromXml npd-CIccMpeXmlCalculator-ParseXml-ub-load-null-ptr.xml output.icc or cause the application to parse the malicious XML. The CIccMpeXmlCalculator::ParseXml() function receives a NULL pNode and dereferences it at IccMpeXml.cpp:3123, causing a SEGV and application crash (GitHub Issue #375).

Indicators of compromise

  • Process: Application crash (SEGV/segmentation fault) in a process using iccDEV, specifically originating from CIccMpeXmlCalculator::ParseXml() in IccMpeXml.cpp:3123.
  • Logs: AddressSanitizer output showing SEGV on unknown address 0x000000000050 with stack trace referencing CIccMpeXmlCalculator::ParseXml, CIccTagXmlMultiProcessElement::ParseElement, and CIccProfileXml::LoadXml.
  • File System: Presence of unexpected or externally sourced XML files with ICC profile structure (.xml extension) in directories processed by iccDEV tools, particularly files containing malformed or empty XML calculator elements.
  • Network: Unexpected downloads of XML files from external sources to systems running iccDEV tools (GitHub Issue #375).

Mitigation and workarounds

Upgrade iccDEV to version 2.3.1.2 or later, which includes the fix introduced in commit 75f124f (merged January 1, 2026). The fix adds a NULL check for pNode at the start of CIccMpeXmlCalculator::ParseXml(), returning false immediately if the pointer is NULL. No official workarounds are provided by the maintainers; until patching is complete, restrict processing of untrusted XML ICC profile files and limit user permissions accordingly (GitHub Advisory, Fix Commit).

Additional resources


SourceThis report was generated using AI

Related Homebrew vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-72898CRITICAL10
  • NixOS logoNixOS
  • metabase
YesYesAug 10, 2026
CVE-2026-68968HIGH7.5
  • Homebrew logoHomebrew
  • airflow
NoYesAug 12, 2026
CVE-2026-34502HIGH7.5
  • NixOS logoNixOS
  • apr-util-nss
NoYesAug 06, 2026
CVE-2026-68971MEDIUM6.5
  • Homebrew logoHomebrew
  • airflow
NoYesAug 12, 2026
CVE-2026-68969MEDIUM6.5
  • Homebrew logoHomebrew
  • airflow
NoYesAug 12, 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

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