CVE-2026-2913: 
Wolfi vulnerability analysis and mitigation

Overview

CVE-2026-2913 is a heap-based buffer overflow vulnerability in libvips up to and including version 8.19.0, caused by an integer truncation flaw in the vips_source_read_to_memory() function within libvips/iofuncs/source.c. The vulnerability was reported on February 10, 2026, and publicly disclosed on February 22, 2026. It affects all libvips versions through 8.19.0 when processing custom seekable sources larger than 4 GiB. The CVSS v3.1 base score is 7.0 (High), though the practical severity is considered low given the narrow exploitation conditions (Red Hat Bugzilla, Feedly).

Technical details

The root cause is an incorrect calculation of buffer size (CWE-131) and improper restriction of memory buffer operations (CWE-119, CWE-122). The function vips_source_read_to_memory() allocates a GByteArray using source->length, which is a 64-bit gint64, but passes it to g_byte_array_set_size(), which accepts only a 32-bit guint. When source->length exceeds G_MAXUINT (i.e., values greater than 4 GiB), the allocation silently truncates to a smaller buffer while the subsequent read loop continues writing up to the full 64-bit length, causing a heap-buffer-overflow write past the allocated region. Exploitation requires a local attacker with low privileges to supply a custom seekable source with a reported length exceeding 4 GiB; the crash occurs in user code rather than within libvips itself. A public proof-of-concept using ASAN/UBSAN was disclosed in the original GitHub issue (libvips Issue #4857, libvips Commit).

Impact

Successful exploitation results in a heap-buffer-overflow write, which can cause a denial of service (application crash) in the calling user code. The libvips maintainers note that confidentiality and integrity impacts are negligible in practice, as the crash occurs in user code rather than within libvips itself, and the condition is only triggerable with custom seekable sources exceeding 4 GiB. There is no evidence of lateral movement potential or data exfiltration risk associated with this vulnerability (Red Hat Bugzilla, Feedly).

Exploitability

A proof-of-concept exploit was publicly disclosed in the libvips GitHub issue tracker at the time of reporting, demonstrating the heap-buffer-overflow using AddressSanitizer on Ubuntu 22.04 with libvips 8.19.0. The EPSS score is 0.013% (very low), and there is no evidence of in-the-wild exploitation or inclusion in the CISA KEV catalog. No threat actor attribution has been identified. The attack requires local access, low privileges, and high complexity, significantly limiting real-world exploitability (libvips Issue #4857, Feedly).

Exploitation steps

  1. Setup: Obtain local access to a system running libvips ≤ 8.19.0 with low-privilege credentials.
  2. Craft a malicious custom source: Implement a VipsSourceCustom with seek and read callbacks that report a source length exceeding G_MAXUINT (e.g., (gint64) 1 << 32 + 1024, approximately 4 GiB + 1024 bytes).
  3. Trigger the overflow: Call vips_source_map() on the custom source. Internally, vips_source_read_to_memory() calls g_byte_array_set_size() with the truncated 32-bit value, allocating a smaller buffer than the reported length.
  4. Heap-buffer-overflow: The read loop writes data up to the full 64-bit length into the undersized buffer, causing a heap-buffer-overflow write past the allocated region and resulting in a crash (denial of service) in the calling application (libvips Issue #4857).

Indicators of compromise

  • Process: Application crashes or abnormal termination of processes using libvips when processing large custom seekable sources; ASAN/UBSAN reports of heap-buffer-overflow in vips_source_read_to_memory() or vips_source_map().
  • Logs: Application error logs showing AddressSanitizer: heap-buffer-overflow at libvips/iofuncs/source.c line ~971; error messages containing length overflow after patching is applied.
  • File System: Presence of PoC source files (e.g., poc_s001.c) or compiled binaries that implement custom VipsSourceCustom with oversized length values on the local system (libvips Issue #4857).

Mitigation and workarounds

Apply the upstream patch commit a56feecbe9ed66521d9647ec9fbcd2546eccd7ee, which adds explicit overflow checks in vips_source_read_to_memory() and vips_source_sniff_at_most() to reject sources with lengths exceeding UINT_MAX before allocation. Organizations not using custom seekable sources larger than 4 GiB face negligible practical risk. Upgrade libvips to a version incorporating this patch (post-8.19.0); Red Hat has tracked this via Bugzilla and Chainguard/Wolfi have also issued advisories. No configuration-based workaround is available beyond avoiding the use of custom seekable sources exceeding 4 GiB (libvips Commit, Red Hat Bugzilla).

Community reactions

Red Hat tracked the issue at low severity (Priority: Low, Severity: Low) via their Bugzilla system, reflecting the limited practical impact. The libvips maintainers acknowledged the bug and confirmed the fix, noting in the patch confirmation that "the impact of this is negligible, since this only affects custom seekable sources larger than 4 GiB (and the crash occurs in user code rather than libvips itself)." No significant broader media coverage or notable researcher commentary beyond the original disclosure has been identified (Red Hat Bugzilla, libvips Issue #4857).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

vips: 8.14.1-3+deb12u3

Fixed

sid

vips: 8.18.0-2

Fixed

trixie

vips: 8.16.1-1+deb13u1

Fixed

Ubuntu

Unknown

bionic (esm-apps)

vips

Unknown

devel

vips

Not Affected

focal (esm-apps)

vips

Unknown

jammy

vips

Unknown

jammy (esm-apps)

vips

Unknown

noble

vips

Unknown

noble (esm-apps)

vips

Unknown

resolute

vips

Unknown

RHEL / CentOS

Unknown

Source: This report was generated using AI

Related Wolfi vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-115585HIGH7.1
  • Python logoPython
  • open-webui
NoYesOct 23, 2026
CVE-2026-115580HIGH7.1
  • Python logoPython
  • pypdf
NoYesOct 23, 2026
CVE-2026-115572HIGH7.1
  • Python logoPython
  • open-webui
NoYesOct 23, 2026
CVE-2026-115892MEDIUM5.7
  • Rust logoRust
  • zed
NoYesOct 23, 2026
CVE-2026-115897LOW2.1
  • JavaScript logoJavaScript
  • arangodb-3.11
NoYesOct 23, 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