ANT-2026-JBKARRJ7 · libvips/libvips
oob-write low
CVE-2026-35590 GHSA-jmwm-wc68-mhwm
Severity Claude low · Security research firm low · Maintainer -
Discovered by Claude Mythos Preview
Anthropic's analysis, sealed at approval. Disclosure to the maintainer was performed by Trail of Bits.
ANT-2026-JBKARRJ7: Out-of-bounds IFD array access in EXIF metadata processing leading to write through corrupted pointer
An out-of-bounds index into the IFD array during EXIF parsing produces a corrupted pointer that is then used as a write target.
Target
Project: libvips
Discovery: static analysis — not yet dynamically reproduced
Reproduction
This finding was identified by static analysis and has not yet been dynamically reproduced. A trigger input is not included.
[No reproducer or sanitizer output attached — request from security-cvd@anthropic.com if needed.]
Acknowledgement
This vulnerability was discovered by Claude, Anthropic's AI assistant, and triaged by the Anthropic security team in collaboration with Anthropic Research. Please direct questions to security-cvd@anthropic.com and reference ANT-2026-JBKARRJ7.
Reference: ANT-2026-JBKARRJ7
Anthropic CVD Policy: https://www.anthropic.com/coordinated-vulnerability-disclosure
Triage and disclosure were performed by Trail of Bits.
- Verdict
- true positive
- Severity
- low
The change that resolved this finding.
diff --git a/ChangeLog b/ChangeLog
index bc3e3ace80..5ea68a830d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
date-tbd 8.18.2
- convolution: avoid using unsigned accumulators [nakrovati]
+- exif: check ifdN range [trailofbits]
- tiffload: check jpeg and jp2k components [wooseokdotkim]
- uhdrsave: set Q for gainmap recompress, don't chroma subsample RGB gainmaps
- uhdrsave: prevent early unref of image with alpha channel [lovell]
diff --git a/libvips/foreign/exif.c b/libvips/foreign/exif.c
index b98e8cfd06..db4395b5e0 100644
--- a/libvips/foreign/exif.c
+++ b/libvips/foreign/exif.c
@@ -1284,6 +1284,11 @@ vips_exif_image_field(VipsImage *image,
p = field + strlen("exif-ifd");
ifd = atoi(p);
+ if (ifd < 0 ||
+ ifd >= EXIF_IFD_COUNT) {
+ g_warning("bad exif ifd %d in \"%s\"", ifd, field);
+ return NULL;
+ }
for (; g_ascii_isdigit(*p); p++)
;https://github.com/libvips/libvips/commit/91ebd4d35341a8353ea490392d556d582e4b846f
Dates from discovery through public reveal.
- 2026-03-26 Sent to maintainer
- 2026-03-29 Reported to tracker
- 2026-03-31 Patch released
- 2026-05-09 Maintainer acknowledged
- 2026-08-17 Publicly revealed
SHA-3-512 hash:
3d086296fdc3ee597627329b2198c6f0a171f3bd2c5912fead06195a09493bc3afd1314179768a43ecdd28a66f5fc9a18544fc24276ed804afd3496622bb7325
Committed 2026-04-09 11:50 PT
Revealed 2026-08-17 10:47 PT
Verify (download preimage.json)
Show preimage JSON
{
"ant_id": "ANT-2026-JBKARRJ7",
"bug_class": "Out-of-bounds Write",
"claude_severity": "low",
"commit_sha": null,
"created_at": "2026-03-29T20:43:13+00:00",
"description": "An out-of-bounds index into the IFD array during EXIF parsing produces a corrupted pointer that is then used as a write target.",
"discovered_at": null,
"location": null,
"poc_sha256": null,
"preimage_version": 1,
"project": "libvips",
"reproduction": null,
"technical_details": null,
"title": "Out-of-bounds IFD array access in EXIF metadata processing leading to write through corrupted pointer",
"vendor_severity": "low"
}