Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-112398— Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution

Quick assessment

Affected
python-pillow Pillow
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Pillow 是一个 Python 图像处理库。在 13.0.0 版本之前,Pillow 的 FlashPix JPEG 分块(tile)解码器在解码扫描行时,可能将数据写入到已分配的分块缓冲区之外。具体而言,FlashPix(FPX)JPEG 解码会选用每像素 2 字节的原始模式 LA;然而,当遇到无法识别的 JPEG 模式时,系统可能将其解码为包含四个分量的 JCS_UNKNOWN 模式,导致 ImagingJpegDecode 将四分量扫描行写入原本仅为 2 字节设计的分块缓冲区。攻击者可构造一个 OLE2

CVSS 9.2 · Critical

Possible ATT&CK Techniques 1 AI

T1203 · Exploitation for Client Execution
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-112398

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution
Source: CVE Program / CVE List V5
Vulnerability Description
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's FlashPix JPEG-tile decoder can write decoded scanlines beyond the allocated tile buffer. FlashPix (FPX) JPEG decoding selects raw mode LA with two bytes per pixel, while an unrecognized JPEG mode can be decoded as JCS_UNKNOWN with four components, causing ImagingJpegDecode to write four-component scanlines into the two-byte tile buffer. An attacker can supply a crafted OLE2 FlashPix file to an application with the optional olefile dependency installed that opens or thumbnails untrusted input. This can corrupt heap memory and may allow arbitrary code execution. This issue is fixed in version 13.0.0.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
堆缓冲区溢出
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
python-pillow Pillow < 13.0.0 -

II. Public POCs for CVE-2026-112398

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-112398

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-112398 (1)

Vendor Advisories for CVE-2026-112398 (1)

Vendor Pages for CVE-2026-112398 (1)

Same Patch Batch · python-pillow · 2026-10-19 · 27 CVEs total

CVE-2026-112393 9.2 CRITICAL Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO
CVE-2026-112900 9.2 CRITICAL Pillow: Argument Injection in Ghostscript call, potentially leading into RCE
CVE-2026-112403 9.2 CRITICAL Pillow: Heap buffer overflow in ImagingJpegDecode
CVE-2026-112896 8.8 HIGH Pillow: TIFF encoder ColorMap plane-size mismatch causes a heap out-of-bounds read
CVE-2026-112404 8.8 HIGH Pillow: OOB read in TiffDecode.c tile and RGBA paths leaks heap memory into pixels
CVE-2026-112897 8.7 HIGH Pillow: TiffDecode returns uninitialized memory as pixels for short JPEG strips
CVE-2026-112895 8.7 HIGH Pillow: Unbounded recursion parsing a PDF page tree or trailer chain (incomplete fix for C
CVE-2026-112405 8.7 HIGH Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
CVE-2026-112892 8.7 HIGH Pillow: MSP RLE decoder expands a tiny file into unbounded memory
CVE-2026-112406 8.7 HIGH Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle
CVE-2026-112894 8.7 HIGH Pillow: Quadratic-time DoS in PDF save_all (PdfParser.next_object_id)
CVE-2026-112400 8.7 HIGH Pillow: GIF seek keeps rejected size after DecompressionBombError, allowing DoS
CVE-2026-112402 8.7 HIGH Pillow: Double free in ImagingScaleAffine on calloc failure via Image.transform
CVE-2026-112397 8.7 HIGH Pillow: Out-of-bounds access in _imagingmorph on a zero-width image
CVE-2026-112399 8.7 HIGH Pillow: APNG background disposal allocates full canvas before decompression bomb check
CVE-2026-112392 8.2 HIGH Pillow: NULL dereference in ImagingExpand via rank filters on zero-size images
CVE-2026-112390 8.2 HIGH Pillow: Infinite loop in MIC n_frames when the embedded TIFF
CVE-2026-112893 8.2 HIGH Pillow: Invalid free in FreeType glyph rendering when a stroker is active
CVE-2026-112901 6.9 MEDIUM Pillow: ReDoS in XbmImagePlugin: 512-byte file stalls Image.open() for minutes
CVE-2026-112898 6.9 MEDIUM Pillow: Image.quantize() with empty palette leaks uninitialized stack memory

Showing top 20 of 27 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-112398

No comments yet


Leave a comment