CVE-2026-112403
Pillow: Heap buffer overflow in ImagingJpegDecode
No known exploitation. EPSS puts it in the 55th percentile. No fix published yet.
What to do
No fixed build or workaround is published yet. Limit exposure and watch for a patch.
- python-pillow PillowAffected: < 13.0.0Upgrade to: not statedStated by: CVE record
Versions as the sources state them. Full version matrix after sign-in
Steps
Written by AI from the record- Ask your developer or vendor whether your website, app, or internal tools use the Pillow Python library to process images (especially features that resize or create thumbnails from user-uploaded JPEGs).
- If Pillow is used, check which version is installed and whether it's linked against libjpeg-turbo 3.x — this combination is required for the issue to trigger.
- There is currently no officially confirmed fixed version — ask your developer to monitor Pillow's official release notes and apply an update as soon as one addressing this issue is published.
- In the meantime, avoid letting untrusted users upload JPEG files that get processed through resizing/thumbnail features, or add validation before those files reach the image library.
What it is
From the CVE record
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's JPEG decoder can write a full-width scanline into a buffer sized for a requested draft scale. ImagingJpegDecode does not verify libjpeg's actual output width and component count after scaling is requested, and an 8-bit lossless SOF3 JPEG decoded by a build linked to libjpeg-turbo 3.x can ignore the requested downscaling geometry. An attacker can supply such a JPEG to an application that uses draft() or thumbnail() to request downscaling. This can corrupt heap memory, crash the process, or potentially allow code execution. Older libjpeg-turbo 2.x and IJG builds reject the SOF3 input. This issue is fixed in version 13.0.0.
In plain language
Written by AI from the recordThis is a flaw in Pillow, a Python library many apps use to resize and process images, that could crash a program or corrupt memory when handling a specially crafted JPEG — it's not being exploited and there's no confirmed fix version yet, so most small businesses don't need to act urgently.
Heap buffer overflow in Pillow's ImagingJpegDecode occurs when an attacker supplies a crafted 8-bit lossless SOF3 JPEG to an application calling draft() or thumbnail() for downscaling, causing the JPEG decoder to write a full-width scanline into an undersized scale-reduced buffer on builds linked against libjpeg-turbo 3.x.
If you're affected
- Application crash
- Potential code execution
- Service disruption during image processing
Exploitation
Where each signal puts this CVE on the scale from published to confirmed exploited.
- CISA KEV
Not in the catalog. CISA has not confirmed exploitation.
- Public exploits
No public exploit or proof of concept found in the sources we track.
- EPSS
0.8% chance of exploitation activity in the next 30 days, which ranks it in the 55th percentile of scored CVEs.
Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.
Lifecycle
6 events over 3 days, from the signal feeds we watch.
- Record updated
- Record updated
- Publishedweakness classified, att&ck mapped, record updated
Affected products
Technical detail
Weaknesses
ATT&CK techniques
Mapped from the weaknesses above (CWE to ATT&CK), not observed in attacks.
- Privilege EscalationT1068Exploitation for Privilege Escalationhigh confidence
Sources
References in the record
In the news
Watch the software you run.
My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.
We'll flag the next CVE, public exploit or patch for Pillow, not every advisory.
A free account adds
- The full version matrix and every affected product
- Exploit links, proofs of concept and Metasploit modules
- Email alerts for the products you watch
- The same data over REST API, MCP and CLI