CVE-2026-112394
published 2026-10-19CVE-2026-112394: Pillow is a Python imaging library. Prior to 13.0.0, Pillow's P;2L and P;4L raw decoders can read past the end of an input buffer. ImagingRawDecode calculates…
PriorityP348high8.2CVSS 3.1
AVNACLPRNUINSUCLINAH
EPSS
0.51%
43.2th percentile
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's P;2L and P;4L raw decoders can read past the end of an input buffer. ImagingRawDecode calculates a packed-pixel row size, while the unpackers read separately padded bit planes. A caller can supply a buffer and image dimensions whose accepted size is smaller than the unpacker's actual footprint. This can disclose up to three adjacent heap bytes in output pixels or crash the process. This issue is fixed in version 13.0.0.
Affected
86 ranges· showing 25
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| ansible-automation-platform-25 | lightspeed-chatbot-rhel8 | — | — |
| ansible-automation-platform-26 | hub-rhel9 | — | — |
| ansible-automation-platform-26 | lightspeed-chatbot-rhel9 | — | — |
| ansible-automation-platform-27 | hub-rhel9 | — | — |
| ansible-automation-platform-27 | lightspeed-chatbot-rhel9 | — | — |
| ansible-automation-platform | automation-dashboard-rhel9 | — | — |
| exploit-intelligence | vulnerability-analysis-rhel9 | — | — |
| lightspeed-core | lightspeed-stack-rhel9 | — | — |
| lightspeed-core | rag-tool-cpu-rhel9 | — | — |
| lightspeed-core | rag-tool-cuda-12.9-rhel9 | — | — |
| lightspeed-services-ocp | ocp-rules-rhel9 | — | — |
| openshift-lightspeed-tech-preview | lightspeed-rag-tool-rhel9 | — | — |
| openshift-lightspeed | lightspeed-ocp-rag-rhel9 | — | — |
| openshift-lightspeed | lightspeed-service-api-rhel9 | — | — |
| python-pillow | pillow | < 13.0.0 | 13.0.0 |
| python | pillow | < 13.0.0 | 13.0.0 |
| python | pillow | >= 0 < 13.0.0 | 13.0.0 |
| quay | quay-rhel8 | — | — |
| quay | quay-rhel9 | — | — |
| rhai-early-access | docling-sdk-cuda-rhel9 | — | — |
| rhai-early-access | docling-serve-cuda-rhel9 | — | — |
| rhai | guidellm-rhel9 | — | — |
| rhaii | model-opt-cuda-rhel9 | — | — |
| rhaii | vllm-cpu-rhel9 | — | — |
| rhaii | vllm-cuda-rhel9 | — | — |
CVSS provenance
nvdv3.18.2HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
nvdv4.06.3MEDIUMCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/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
vendor_redhat6.3MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
ghsa·2026-10-21
CVE-2026-112394 [MEDIUM] CWE-126 Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
### Summary
On `main`, even with the guard in #9725, it's possible to have these decoders read 1 to 3 bytes past the end of the passed buffer with a suitable width/height.
### Details
`ImagingRawDecode` and the `P;2L` / `P;4L` unpackers disagree about how many bytes a line of data occupies.
The raw decoder derives the line size from the bits per pixel
```c
state->bytes = (state->xsize * state->bits + 7) / 8;
```
and uses it both for the bounds check and to advance to the next line. For `P;2L` and `P;4L`, `bits` is 2 and 4 respectively.
But these two rawmodes are not packed pixels but 2 or 4 *bit planes*, each padded to a whole number of bytes. `unpackP2L` computes `s = (pixels + 7) / 8` and reads plane
VulDB
python-pillow Pillow up to 12.x Raw Decoders heap-based overflow
vuldb·2026-10-19·CVSS 6.3
CVE-2026-112394 [MEDIUM] python-pillow Pillow up to 12.x Raw Decoders heap-based overflow
A vulnerability was found in python-pillow Pillow up to 12.x. It has been classified as critical. The impacted element is an unknown function of the component Raw Decoders. This manipulation causes heap-based buffer overflow.
The identification of this vulnerability is CVE-2026-112394. It is possible to initiate the attack remotely. There is no exploit available.
Upgrading the affected component is recommended.
Red Hat
pillow: pillow: Information disclosure via out-of-bounds read in raw decoders
vendor_redhat·2026-10-19·CVSS 6.3
CVE-2026-112394 [MEDIUM] CWE-125 pillow: pillow: Information disclosure via out-of-bounds read in raw decoders
pillow: pillow: Information disclosure via out-of-bounds read in raw decoders
A flaw was found in pillow. A remote attacker could trigger an out-of-bounds read by supplying specially crafted image dimensions and input buffers to the raw image decoders. Because the decoder calculates an image row size smaller than the unpacker's actual memory footprint, the library reads past the end of the buffer. This flaw can lead to information disclosure by exposing adjacent heap memory in output pixels or cause a Denial of Service (DoS) by crashing the application.
Package: exploit-intelligence/vulnerability-analysis-rhel9 (Exploit Intelligence) - Out of support scope
Package: lightspeed-core/lightspeed-stack-rhel9 (Lightspeed Core) - Fix deferred
Package: lightspeed-core/rag-tool-cpu-rhel9 (Light
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/python-pillow/Pillow/commit/392ee6f0d19a4adb766a63e9a99f3c28193b8d31https://github.com/python-pillow/Pillow/releases/tag/13.0.0https://github.com/python-pillow/Pillow/security/advisories/GHSA-4558-3h8r-v8xphttps://github.com/python-pillow/Pillow/security/advisories/GHSA-4558-3h8r-v8xp
2026-10-19
Published