CVE-2026-70654
libvips: A well-crafted PPM image processed via a custom source could lead to possible heap buffer write overflow
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
5.8
libvips: A well-crafted PPM image processed via a custom source could lead to possible heap buffer write overflow
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.
- Record
CVE-2026-70654- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-122
- Updated
- 2026-11-02
EUVDEUVD-2026-63656
5.8
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.
- Record
EUVD-2026-63656- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
NVD
5.8
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.
- Record
CVE-2026-70654- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-122
- Updated
- 2026-11-02
OSV
5.8
libvips: A well-crafted PPM image processed via a custom source could lead to possible heap buffer write overflow
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.
- Record
CVE-2026-70654- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-122
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-70654
5.8
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.
- Record
DEBIAN-CVE-2026-70654- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-70654
5.8
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.
- Record
UBUNTU-CVE-2026-70654- CVSS 4.0
- 5.8 Medium
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-04
OSVopenSUSE-SU-2026:12266-1 No score
libvips-devel-8.18.7-1.1 on GA media
These are all security issues fixed in the libvips-devel-8.18.7-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12266-1- Updated
- 2026-11-02
OSVUSN-8994-1 No score
vips vulnerabilities
It was discovered that libvips incorrectly handled certain PDF files with a page that defines a width but not a height. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service, or obtain sensitive information. This issue only affected Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, and Ubuntu 24.04 LTS. (CVE-2025-59933)
It was discovered that libvips incorrectly determined image dimensions in the vipsload operation, leading to an integer overflow. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service, or possibly execute arbitrary code. (CVE-2026-33327)
It was discovered that libvips incorrectly determined image dimensions in the gifload operation on 32-bit systems, leading to an integer overflow. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-33328)
It was discovered that libvips did not properly validate EXIF tag groups. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service. (CVE-2026-35590)
It was discovered that libvips incorrectly determined the number of channels in certain encoded tiles within TIFF images. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service, or possibly execute arbitrary code. This issue only affected Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, and Ubuntu 26.04 LTS. (CVE-2026-35591)
It was discovered that libvips incorrectly validated scanlines in certain TIFF images with many bands, leading to an integer overflow. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service, obtain sensitive information, or possibly execute arbitrary code. (CVE-2026-69242)
It was discovered that libvips incorrectly calculated frame heights when loading certain multi-page TIFF images through ImageMagick. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service. (CVE-2026-70651)
It was discovered that libvips incorrectly handled certain Radiance images. An attacker could possibly use this issue to obtain sensitive information. (CVE-2026-70653)
It was discovered that libvips incorrectly calculated read sizes when processing certain uncompressed PPM images from custom sources. An attacker could possibly use this issue to cause libvips to crash, resulting in a denial of service, or possibly execute arbitrary code. This issue only affected Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, and Ubuntu 26.04 LTS. (CVE-2026-70654)
- Record
USN-8994-1- Updated
- 2026-11-04
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
vipsDebian:12 |
All versions, plus listed versions 8.14.1-38.14.1-3+deb12u18.14.1-3+deb12u28.14.1-3+deb12u38.14.2-1 Show 30 moreShow less8.14.3-18.14.4-18.14.5-18.15.0-18.15.0-28.15.0~rc2-18.15.0~rc2-28.15.1-18.15.1-1.18.15.1-1.1~exp18.15.2-18.15.2-28.15.3-18.16.0-18.16.0-28.16.1-18.16.1-28.17.3-18.17.3-28.18.0-18.18.0-28.18.0-38.18.1-18.18.2-18.18.3-18.18.4-18.18.5-18.18.6-18.18.6-28.18.7-1 |
None known |
vipsDebian:13 |
before 8.16.1-1+deb13u2, plus listed versions 8.16.1-18.16.1-1+deb13u1 |
8.16.1-1+deb13u2 |
vipsDebian:14 |
before 8.18.3-1, plus listed versions 8.16.1-18.16.1-28.17.3-18.17.3-28.18.0-1 Show 4 moreShow less8.18.0-28.18.0-38.18.1-18.18.2-1 |
8.18.3-1 |
vipsUbuntu:Pro:20.04:LTS |
before 8.9.1-2ubuntu0.1~esm2, plus listed versions 8.7.4-1build18.8.3-38.8.3-3ubuntu18.9.0-18.9.0-1build18.9.1-18.9.1-28.9.1-2ubuntu0.1~esm1 |
8.9.1-2ubuntu0.1~esm2 |
vipsUbuntu:Pro:22.04:LTS |
before 8.12.1-1ubuntu0.1~esm3, plus listed versions 8.10.5-2ubuntu18.11.4-28.12.1-18.12.1-1build18.12.1-1ubuntu0.1~esm18.12.1-1ubuntu0.1~esm2 |
8.12.1-1ubuntu0.1~esm3 |
vipsUbuntu:Pro:24.04:LTS |
before 8.15.1-1.1ubuntu0.1~esm2, plus listed versions 8.14.3-18.14.5-18.15.0-18.15.0-28.15.1-1 Show 4 moreShow less8.15.1-1build18.15.1-1.1build38.15.1-1.1build48.15.1-1.1ubuntu0.1~esm1 |
8.15.1-1.1ubuntu0.1~esm2 |
vipsUbuntu:Pro:26.04:LTS |
before 8.18.0-1ubuntu0.1~esm2, plus listed versions 8.16.1-18.16.1-28.17.3-28.18.0-18.18.0-1build18.18.0-1ubuntu0.1~esm1 |
8.18.0-1ubuntu0.1~esm2 |
vipsUbuntu:Pro:16.04:LTS From an advisory covering 9 CVEs |
before 8.2.2-1ubuntu0.1~esm1, plus listed versions 7.40.6-2ubuntu28.0.2-28.2.1-18.2.2-1 |
8.2.2-1ubuntu0.1~esm1 |
vipsUbuntu:Pro:18.04:LTS From an advisory covering 9 CVEs |
before 8.4.5-1ubuntu0.1~esm2, plus listed versions 8.4.5-1build18.4.5-1ubuntu0.1~esm1 |
8.4.5-1ubuntu0.1~esm2 |
vipsUbuntu:Pro:20.04:LTS From an advisory covering 9 CVEs |
before 8.9.1-2ubuntu0.1~esm2, plus listed versions 8.7.4-1build18.8.3-38.8.3-3ubuntu18.9.0-18.9.0-1build18.9.1-18.9.1-28.9.1-2ubuntu0.1~esm1 |
8.9.1-2ubuntu0.1~esm2 |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
vipsUbuntu:Pro:22.04:LTS From an advisory covering 9 CVEs |
before 8.12.1-1ubuntu0.1~esm3, plus listed versions 8.10.5-2ubuntu18.11.4-28.12.1-18.12.1-1build18.12.1-1ubuntu0.1~esm18.12.1-1ubuntu0.1~esm2 |
8.12.1-1ubuntu0.1~esm3 |
vipsUbuntu:Pro:24.04:LTS From an advisory covering 9 CVEs |
before 8.15.1-1.1ubuntu0.1~esm2, plus listed versions 8.14.3-18.14.5-18.15.0-18.15.0-28.15.1-1 Show 4 moreShow less8.15.1-1build18.15.1-1.1build38.15.1-1.1build48.15.1-1.1ubuntu0.1~esm1 |
8.15.1-1.1ubuntu0.1~esm2 |
vipsUbuntu:Pro:26.04:LTS From an advisory covering 9 CVEs |
before 8.18.0-1ubuntu0.1~esm2, plus listed versions 8.16.1-18.16.1-28.17.3-28.18.0-18.18.0-1build18.18.0-1ubuntu0.1~esm1 |
8.18.0-1ubuntu0.1~esm2 |
vipsopenSUSE:Tumbleweed From an advisory covering 9 CVEs |
before 8.18.7-1.1 | 8.18.7-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| affected, aliases, references | OSV | |
| affected, facts | OSV | |
| aliases, published | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-70654 is a medium vulnerability (CVSS 5.8) in Libvips, published August 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.11%, the 1st percentile. Fixed in vips 8.16.1-1+deb13u2.
References
github.com/libvips/libvips/security/advisories/GHSA-rjmm-3qch-m9rg
github.com/libvips/libvips/pull/5038
github.com/libvips/libvips/commit/80e021c6cdda0f80b756c2109d99839c94c03258
github.com/libvips/libvips/releases/tag/v8.18.3
github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70654.json
nvd.nist.gov/vuln/detail/CVE-2026-70654
Show 21 moreShow less
security-tracker.debian.org/tracker/CVE-2026-70654
ubuntu.com/security/CVE-2026-70654
cve.org/CVERecord?id=CVE-2026-70654
ubuntu.com/security/notices/USN-8994-1
ubuntu.com/security/CVE-2025-59933
ubuntu.com/security/CVE-2026-33327
ubuntu.com/security/CVE-2026-33328
ubuntu.com/security/CVE-2026-35590
ubuntu.com/security/CVE-2026-35591
ubuntu.com/security/CVE-2026-69242
ubuntu.com/security/CVE-2026-70651
ubuntu.com/security/CVE-2026-70653
suse.com/security/cve/CVE-2019-17534
suse.com/security/cve/CVE-2019-6976
suse.com/security/cve/CVE-2023-40032
suse.com/security/cve/CVE-2025-59933
suse.com/security/cve/CVE-2026-2913
suse.com/security/cve/CVE-2026-69242
suse.com/security/cve/CVE-2026-70651
suse.com/security/cve/CVE-2026-70652
suse.com/security/cve/CVE-2026-70654