CVE-2026-21676: 
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21676 is a heap-based buffer overflow vulnerability in iccDEV, a set of libraries and tools for working with ICC color management profiles maintained by the International Color Consortium. The flaw exists in the CIccMBB::Validate function (specifically within CIccTagLut16::Validate() at IccProfLib/IccTagLut.cpp:5304) which incorrectly handles tag data validity checks when processing ICC color profile files. All versions up to and including 2.3.1 are affected; the issue is fixed in version 2.3.1.1 (patched version 2.3.1.2 per the security advisory). It was disclosed on January 3–6, 2026, with a CVSS v3.1 base score of 8.8 (High) (GitHub Advisory, Feedly).

Technical details

The root cause is improper input validation (CWE-20) leading to a heap-based buffer overflow (CWE-122) in the CIccTagLut16::Validate() function within IccProfLib/IccTagLut.cpp. The bug stems from incorrect channel count logic in the icSigGamutTag case: the code used hardcoded values (nInput = 1) and swapped input/output channel assignments incorrectly, causing an out-of-bounds read of 8 bytes past a 24-byte heap-allocated region. The fix (commit e4c38a6) corrects the input/output channel derivation using icGetSpaceSamples() and properly applies std::swap() only for AToB tags. Exploitation requires a user to open or process a specially crafted malicious ICC color profile file, triggering the overflow during profile validation (GitHub Issue #215, Patch Commit).

Impact

Successful exploitation of this vulnerability can result in memory corruption, potentially enabling an attacker to achieve arbitrary code execution, cause application crashes (denial of service), or exfiltrate sensitive data. The vulnerability affects confidentiality, integrity, and availability at a high level, impacting any application or pipeline that uses the iccDEV library to process ICC color profiles. Because iccDEV is a library used by other software, downstream applications incorporating it are also at risk (GitHub Advisory, Feedly).

Exploitability

A proof-of-concept demonstrating the heap buffer overflow has been publicly documented in GitHub Issue #215, including a full AddressSanitizer trace and a reproducer ICC profile file (SC_paper_eci.icc). The EPSS score is approximately 0.037%, indicating low probability of widespread exploitation in the near term. There is no evidence of active in-the-wild exploitation or threat actor attribution at this time, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Issue #215, Feedly).

Exploitation steps

  1. Craft a malicious ICC profile: Create or obtain a specially crafted ICC color profile file (e.g., a modified .icc file) that contains tag data designed to trigger incorrect channel count calculations in the icSigGamutTag case of CIccTagLut16::Validate().
  2. Deliver the file: Distribute the malicious ICC profile to a target user via email attachment, web download, or embedding it in a document — exploiting the required user interaction condition.
  3. Trigger profile processing: Induce the target to open the file with an application that uses the iccDEV library (e.g., iccDumpProfile -v <malicious.icc>), which calls CIccProfile::Validate() → CIccTagLut16::Validate() → CIccMBB::NewCurvesA().
  4. Trigger heap overflow: The incorrect channel count logic causes a READ of 8 bytes past the end of a 24-byte heap-allocated region, resulting in a heap-buffer-overflow at IccTagLut.cpp:5304.
  5. Achieve objective: Depending on heap layout and exploitation sophistication, the attacker may achieve application crash (DoS), memory disclosure, or potentially arbitrary code execution under the privileges of the processing application (GitHub Issue #215, GitHub Advisory).

Indicators of compromise

  • File System: Presence of unexpected or externally sourced .icc color profile files in user download directories, temp folders, or email attachments; specifically files that trigger crashes in iccDEV-based tools.
  • Process: Abnormal termination (crash/abort) of applications using iccDEV when processing ICC profiles; AddressSanitizer output referencing CIccTagLut16::Validate() at IccProfLib/IccTagLut.cpp:5304 or CIccMBB::NewCurvesA() at IccTagLut.cpp:3703.
  • Logs: Application crash logs or core dumps from tools such as iccDumpProfile with stack traces involving CIccProfile::Validate, CIccProfile::ReadValidate, or CIccProfile::LoadTag; error messages referencing heap-buffer-overflow from sanitizer-enabled builds.
  • Network: Unusual downloads of .icc files from untrusted or unknown external sources to systems running iccDEV-dependent software (GitHub Issue #215).

Mitigation and workarounds

Upgrade iccDEV to version 2.3.1.1 or later (patched version 2.3.1.2 as noted in the security advisory), which includes the fix in commit e4c38a6 correcting the channel count logic in CIccTagLut16::Validate() and CIccTagLut8::Validate(). No official workarounds are provided by the vendor. As interim mitigations, restrict processing of ICC color profile files to trusted sources only, apply the principle of least privilege to applications using iccDEV, and educate users to avoid opening unexpected ICC profile files (GitHub Advisory, Patch Commit).

Community reactions

The vulnerability was reported by researcher xsscx and remediated by ChrisCoxArt (the credited developer). The issue was discussed on social media including Mastodon (TheHackerWire) and Bluesky, and covered by security news outlets such as The Hacker Wire and InfinitSec. CISA included it in their weekly vulnerability bulletin (SB26-012) for the week of January 5, 2026. Community reaction has been measured, consistent with a library-level vulnerability requiring user interaction (Feedly, CISA Bulletin).

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