CVE-2026-21686: 
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21686 is a heap-buffer-overflow and undefined behavior vulnerability in the CIccTagLutAtoB::Validate() function of the iccDEV library, which provides tools for interacting with ICC color management profiles. It affects iccDEV versions prior to 2.3.1.2 and was disclosed on January 7, 2026, with the underlying defect first reported on November 21, 2025. The vulnerability carries a CVSS v3.1 base score of 7.1 (High) (GitHub Advisory, Feedly).

Technical details

The root cause is improper input validation (CWE-20) combined with reliance on undefined behavior (CWE-758) in IccProfLib/IccTagLut.cpp at line 4242. Specifically, CIccTagLutAtoB::Validate() uses channel counts derived from colorspace metadata rather than from the LUT itself, leading to a heap-buffer-overflow when processing a maliciously crafted ICC profile file. The fix, contributed by ChrisCoxArt in PR #222, corrects this by using channel counts from the LUT directly. A proof-of-concept reproducer ICC file is publicly available and was used to confirm the defect (GitHub Issue #214, GitHub PR #222).

Impact

Successful exploitation can result in high availability impact (denial of service via application crash) and low integrity impact, with no confidentiality impact. An attacker who can deliver a crafted ICC color profile to a user or application using the iccDEV library can trigger the heap-buffer-overflow, causing the processing application to abort. The attack requires user interaction (e.g., opening or processing a malicious ICC file) but requires no privileges or authentication (GitHub Advisory).

Exploitability

A public proof-of-concept reproducer ICC file is available in the xsscx Commodity-Injection-Signatures repository and was used to confirm the heap-buffer-overflow via AddressSanitizer (GitHub Issue #214). 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.055%, indicating low probability of near-term exploitation (Feedly).

Exploitation steps

  1. Craft or obtain a malicious ICC profile: Use the publicly available PoC ICC file (icCurvesToXml_IccXmlLib_IccTagXml.cpp-L3049.icc) from the xsscx Commodity-Injection-Signatures repository, or craft a custom ICC profile with mismatched LUT channel counts and colorspace metadata.
  2. Deliver the malicious file: Distribute the crafted ICC profile to a target user via email attachment, web download, or embedding in a document — any vector that causes the target application to process the file using the vulnerable iccDEV library.
  3. Trigger profile processing: Induce the target application (e.g., iccDumpProfile) to open and validate the ICC profile, which invokes CIccTagLutAtoB::Validate() in IccTagLut.cpp.
  4. Trigger heap-buffer-overflow: The Validate() function reads 8 bytes past the end of a heap-allocated buffer at line 4242, causing a heap-buffer-overflow and application crash (denial of service) (GitHub Issue #214).

Indicators of compromise

  • File System: Presence of unexpected or externally sourced .icc profile files, particularly those with mismatched LUT and colorspace channel counts.
  • Logs: Application crash logs or core dumps referencing CIccTagLutAtoB::Validate() in IccProfLib/IccTagLut.cpp:4242; AddressSanitizer output showing heap-buffer-overflow at the same location.
  • Process: Abnormal termination (abort/SIGABRT) of applications using the iccDEV library when processing ICC profile files; process crash reports from iccDumpProfile or similar tools (GitHub Issue #214).

Mitigation and workarounds

Upgrade iccDEV to version 2.3.1.2, which contains the patch merging PR #222 that fixes the undefined behavior by using LUT-derived channel counts instead of colorspace-derived counts. No workarounds are available for unpatched versions. Organizations using iccDEV in applications that process untrusted ICC profiles should treat this upgrade as a priority (GitHub Advisory, GitHub PR #222).

Community reactions

The vulnerability was reported by security researcher xsscx and remediated by contributor ChrisCoxArt, with the fix merged on November 24, 2025, and the formal advisory published on January 3, 2026. The CISA vulnerability bulletin for the week of January 5, 2026 included this CVE. No significant broader media coverage or notable community debate has been identified beyond the GitHub issue and advisory (GitHub Advisory, 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