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

CVE-2026-31961
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-31961 is an unbounded memory allocation vulnerability in Anchore Quill, a Go-based tool for macOS binary signing and notarization. When parsing Mach-O binaries, Quill fails to validate size and count fields read from the LC_CODE_SIGNATURE load command and embedded code signing structures (SuperBlob, BlobIndex), allowing an attacker to trigger excessive memory allocation and denial of service. All versions of github.com/anchore/quill prior to v0.7.1 are affected, including both the CLI and Go library. The vulnerability was published on March 10, 2026, and carries a CVSS v3.1 base score of 5.5 (Medium) (GitHub Advisory, Red Hat Bugzilla).

Technical details

The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling). Quill reads DataSize, DataOffset, and Size from the LC_CODE_SIGNATURE load command, Count from the SuperBlob header, and Length from individual blob headers, then uses these values directly to allocate memory buffers without checking whether they are reasonable or consistent with the actual file size. An attacker can craft a minimal (~4KB) malicious Mach-O binary with artificially inflated values in these fields, causing Quill to attempt allocations of gigabytes of memory. The fix in v0.7.1 introduces hard limits (maxSuperBlobSize = 50MB, maxBlobCount = 25, maxBlobLength = 16MB, maxLoaderCmdSize = 128 bytes) and a validateDataRange function that verifies claimed data ranges fit within the actual file before any allocation occurs (GitHub Advisory, Patch Commit).

Impact

Successful exploitation causes memory exhaustion and denial of service, potentially crashing the host process running Quill. There is no confidentiality or integrity impact — the vulnerability is purely an availability issue. The most significant risk is in automated environments such as CI/CD pipelines, shared signing services, or any workflow that accepts externally-submitted binaries for signing, where a crash could disrupt build and release processes (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or in-the-wild exploitation has been reported. The vulnerability requires local access with low privileges (the attacker must be able to supply a malicious Mach-O binary to a Quill process), limiting its attack surface primarily to shared or automated signing environments. The EPSS score is approximately 0.013–0.019%, indicating a very low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog (GitHub Advisory).

Exploitation steps

  1. Craft a malicious Mach-O binary: Create a minimal (~4KB) Mach-O binary file with a valid Mach-O header but with artificially inflated values in the LC_CODE_SIGNATURE load command fields (DataSize, DataOffset, Size) and in the embedded SuperBlob header (Count) and blob headers (Length), setting them to values in the gigabyte range.
  2. Submit the binary to a Quill-processing workflow: Introduce the crafted binary into a CI/CD pipeline, shared signing service, or any automated workflow that invokes Quill (CLI or Go library) to parse or sign the binary.
  3. Trigger memory exhaustion: When Quill parses the binary, it reads the inflated size fields and attempts to allocate memory buffers proportional to those values without bounds checking, causing the host process to exhaust available system memory.
  4. Achieve denial of service: The host process crashes or becomes unresponsive due to out-of-memory conditions, disrupting the signing pipeline or service (GitHub Advisory, Patch Commit).

Indicators of compromise

  • Process: Quill CLI or Go service process consuming abnormally large amounts of memory (approaching system RAM limits) before crashing with an out-of-memory error.
  • Logs: Go runtime OOM panic stack traces or process crash logs associated with the Quill binary or any application embedding github.com/anchore/quill; error messages referencing Mach-O parsing or code signing structures.
  • File System: Presence of unexpected or anomalous Mach-O files (particularly very small files, ~4KB) submitted to signing directories or queues that contain oversized LC_CODE_SIGNATURE fields inconsistent with the file size.
  • System: Sudden increase in system memory usage followed by process termination in CI/CD runners or signing service hosts processing externally-supplied binaries.

Mitigation and workarounds

Upgrade to Quill v0.7.1 or later, which introduces hard limits on all size and count fields read from Mach-O binaries and validates that claimed data ranges fit within the actual file before allocation. No configuration-based workarounds are available; the vendor advisory explicitly states there are no workarounds for this issue. Organizations using Quill in automated pipelines should prioritize upgrading, and in the interim should restrict which users or systems can submit binaries for signing (GitHub Advisory, Release v0.7.1).

Community reactions

The vulnerability was reported to Anchore by opera-aklajn from Opera, and Anchore credited the researcher in the official advisory. Red Hat tracked the issue via Bugzilla (Bug 2446758) as a medium-severity security response item. Community coverage was limited to automated vulnerability database aggregators and feeds, with no notable independent researcher commentary or significant social media discussion observed (GitHub Advisory, Red Hat Bugzilla).

Additional resources


SourceThis report was generated using AI

Related NixOS 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