Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-21681
Homebrew vulnerability analysis and mitigation

Overview

CVE-2026-21681 is an undefined behavior runtime error in the iccDEV library, a set of libraries and tools for interacting with International Color Consortium (ICC) color management profiles. The vulnerability affects all iccDEV versions prior to 2.3.1.2 and was published on January 7, 2026. It was discovered by researcher xsscx and remediated by ChrisCoxArt. The vulnerability carries a CVSS v3.1 base score of 7.1 (High) (GitHub Advisory).

Technical details

The root cause is improper input validation (CWE-20) in IccProfLib/IccTagBasic.cpp and related files, where the library fails to handle special floating-point values — specifically NaN (Not a Number) and Infinity — when processing ICC color profile data. When a NaN value is encountered during interpolation or curve application, it falls outside the expected numeric range, triggering undefined behavior at runtime. The fix (PR #269) added explicit NaN and Infinity checks across multiple files including IccTagLut.cpp, IccTagBasic.cpp, IccMpeCalc.cpp, and IccMpeBasic.cpp, implementing bounds checking for CLUT offset calculations and safe integer conversion using std::numeric_limits. Exploitation requires user interaction — a victim must process a maliciously crafted ICC color profile — and no privileges are required on the attacker's side (GitHub Advisory, GitHub PR #269).

Impact

Successful exploitation can cause application crashes (high availability impact) and potential data corruption (low integrity impact) in any software that uses the iccDEV library to process ICC color profiles. There is no confidentiality impact, as the vulnerability does not expose sensitive data. The attack vector is network-accessible, meaning an attacker can deliver a malicious ICC profile remotely, but requires the victim to open or process the file (GitHub Advisory).

Exploitability

There is no known public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.05%, reflecting a very low probability of exploitation in the near term (GitHub Advisory).

Exploitation steps

  1. Craft a malicious ICC profile: Create a specially crafted ICC color profile file that contains NaN or Infinity values in fields processed by the vulnerable interpolation or curve-application functions in IccTagBasic.cpp, IccTagLut.cpp, or IccMpeBasic.cpp.
  2. Deliver the profile to the target: Distribute the malicious ICC profile via email attachment, a web download, or embedding it in a document or image that triggers ICC profile processing by an application using the iccDEV library.
  3. Trigger processing: Induce the victim to open the file or use an application that automatically processes ICC profiles (e.g., image viewers, color management tools, or print workflows).
  4. Trigger undefined behavior: When the library processes the malformed profile, the NaN value passes through unvalidated input handling in functions such as CIccSingleSampledCurve::Apply() or the Interpolate function, causing a runtime undefined behavior error.
  5. Achieve denial of service or data corruption: The undefined behavior results in an application crash (denial of service) or, in some cases, data corruption in the color processing pipeline (GitHub Advisory, GitHub PR #269).

Indicators of compromise

  • File System: Unexpected or suspicious ICC profile files (.icc, .icm) in user download directories, temp folders, or application data paths that contain anomalous floating-point values (NaN/Infinity) in profile data fields.
  • Logs: Application crash logs or core dumps originating from processes linked to the iccDEV library, particularly referencing IccProfLib/IccTagBasic.cpp, IccTagLut.cpp, or IccMpeBasic.cpp; runtime error messages such as "nan is outside the range".
  • Process: Unexpected termination of image processing, color management, or print workflow applications that use the iccDEV library after opening an externally sourced file.

Mitigation and workarounds

The vendor has released version 2.3.1.2 of iccDEV, which contains the patch addressing this vulnerability via PR #269. Users running any version prior to 2.3.1.2 should upgrade immediately. No workarounds are available for unpatched versions; as an interim measure, organizations should restrict processing of ICC color profiles from untrusted or external sources until the upgrade is applied (GitHub Advisory, GitHub PR #269).

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-91782LOW1.9
  • NixOS logoNixOS
  • binutils
NoYesSep 15, 2026
CVE-2026-91781LOW1.9
  • NixOS logoNixOS
  • binutils
NoYesSep 15, 2026
CVE-2026-91780LOW1.9
  • NixOS logoNixOS
  • binutils
NoNoSep 15, 2026
CVE-2026-91779LOW1.9
  • NixOS logoNixOS
  • binutils
NoNoSep 15, 2026
CVE-2026-90831LOW1.9
  • NixOS logoNixOS
  • seal-binutils
NoYesSep 14, 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