---
id: CVE-2026-70654
title: libvips is a fast image processing library with low memory needs
summary: >-
  libvips is a fast image processing library with low memory needs. Prior to
  version 8.18.3, applications that define unusual custom libvips sources and
  use them to process untrusted uncompressed PPM images can trigger a max/min
  error in v…
severity: none
cwe:
  - CWE-122
published: '2026-08-20'
updated: '2026-09-18'
sourceUpdated: '2026-09-18T20:09:01.757'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-70654'
references:
  - url: >-
      https://github.com/libvips/libvips/commit/80e021c6cdda0f80b756c2109d99839c94c03258
    label: security-advisories@github.com
  - url: 'https://github.com/libvips/libvips/pull/5038'
    label: security-advisories@github.com
  - url: 'https://github.com/libvips/libvips/releases/tag/v8.18.3'
    label: security-advisories@github.com
  - url: 'https://github.com/libvips/libvips/security/advisories/GHSA-rjmm-3qch-m9rg'
    label: security-advisories@github.com
tags:
  - nvd
epss: 0.00142
epssPercentile: 0.02829
ingestedAt: '2026-09-18T20:51:25.646Z'
---

## Overview

libvips is a fast image processing library with low memory needs. Prior to version 8.18.3, applications that define unusual custom libvips sources and use them to process untrusted uncompressed PPM images can trigger a max/min error in vips_source_read_to_memory in libvips/iofuncs/source.c. The function uses VIPS_MAX instead of VIPS_MIN when selecting the remaining read size, allowing up to 4032 bytes to be written beyond the allocated heap buffer and causing memory corruption or a process crash. This issue is fixed in version 8.18.3.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
