CVE-2026-21678: 
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21678 is a heap-based buffer overflow vulnerability in the IccTagXml() function of iccDEV, a library and toolset for interacting with ICC color management profiles maintained by the International Color Consortium. The vulnerability affects all iccDEV versions prior to 2.3.1.2 and was publicly disclosed on January 7, 2026. It was originally reported via fuzzing in October 2023 (GitHub Issue #55) and patched in November 2025 via PR #219, with the CVE formally assigned in January 2026. It carries a CVSS v3.1 base score of 7.8 (High) (GitHub Advisory).

Technical details

The root cause is improper input validation (CWE-20) leading to a heap-based buffer overflow (CWE-122) with associated out-of-bounds read (CWE-125) and out-of-bounds write (CWE-787) in the icMBBToXml() function within IccXML/IccLibXML/IccTagXml.cpp. Specifically, the channel count passed to icCurvesToXml() was hard-coded to 3 rather than dynamically derived from the profile's actual input or output channel count; when a crafted .icc profile specifies a different number of channels (e.g., 1), the function reads beyond the allocated heap buffer. Exploitation requires a user to open or process a specially crafted ICC color profile file with a vulnerable version of iccDEV tools such as iccToXml. The fix, introduced in commit c6c0f1c, replaces the hard-coded 3 with pMBB->InputChannels() or pMBB->OutputChannels() as appropriate (GitHub Issue #55, Patch Commit).

Impact

Successful exploitation can result in high confidentiality, integrity, and availability impact on the affected system, as reflected in the CVSS score. An attacker who tricks a user into processing a malicious ICC profile file could achieve arbitrary code execution in the context of the application, potentially enabling data theft, file system modification, or application crash. The attack is local in vector and requires user interaction, limiting its scope to systems where users or automated pipelines process untrusted ICC profile files (GitHub Advisory).

Exploitability

A proof-of-concept crash-triggering ICC profile file was attached to the original GitHub issue (#55) by the reporter (RootUp), demonstrating the vulnerability via AddressSanitizer and GDB on Ubuntu 22.04. There is no evidence of in-the-wild exploitation or inclusion in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.018% (0.000180), indicating a very low probability of exploitation in the near term. No threat actor attribution or weaponized exploit kits have been identified (GitHub Issue #55, Feedly).

Exploitation steps

  1. Craft a malicious ICC profile: Create or obtain a specially crafted .icc color profile file that specifies a LutAtoB tag with a channel count other than 3 (e.g., 1 output channel), causing a mismatch with the hard-coded buffer size in icMBBToXml().
  2. Deliver the file to the target: Social-engineer a user into opening the malicious .icc file with an iccDEV-based tool (e.g., iccToXml), or place it in a directory processed by an automated ICC profile handling pipeline.
  3. Trigger the overflow: When the tool processes the file, CIccTagLutAtoB::Read() allocates a heap buffer sized for the actual channel count, but icMBBToXml() passes the hard-coded value 3 to icCurvesToXml(), causing a read beyond the allocated region at IccTagXml.cpp:2991.
  4. Achieve code execution or crash: Depending on heap layout and memory protections, the out-of-bounds access may result in a segmentation fault (denial of service) or, under favorable conditions, arbitrary code execution in the context of the running process (GitHub Issue #55, Patch Commit).

Indicators of compromise

  • Process: Application crash or segmentation fault (SIGSEGV) when processing .icc files using iccDEV tools such as iccToXml; AddressSanitizer output reporting heap-buffer-overflow at IccTagXml.cpp:2991 in icCurvesToXml().
  • File System: Presence of unexpected or externally sourced .icc profile files in directories processed by iccDEV-based tools; sample PoC file referenced in GitHub Issue #55.
  • Logs: Application logs or crash dumps referencing SIGSEGV or ABORTING from iccToXml; AddressSanitizer output lines containing heap-buffer-overflow on address and stack traces through icCurvesToXml → icMBBToXml → CIccTagXmlLutAtoB::ToXml (GitHub Issue #55).

Mitigation and workarounds

Upgrade iccDEV to version 2.3.1.2 or later, which includes the fix from PR #219 (commit c6c0f1c) that replaces the hard-coded channel count of 3 with the dynamically derived input/output channel count. No official workarounds are provided by the maintainers. As an interim measure, avoid processing untrusted or externally sourced ICC profile files with vulnerable versions of iccDEV tools (GitHub Advisory, Patch Commit).

Community reactions

The vulnerability was noted in automated vulnerability tracking feeds including CIRCL's vulnerability lookup, VulnDB, and INCIBE-CERT shortly after disclosure. Brief social media mentions appeared on Mastodon and Bluesky via TheHackerWire. The CISA weekly vulnerability bulletin for the week of January 5, 2026 included this CVE. Community reaction was limited given the niche scope of the affected library (GitHub Advisory).

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