Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
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.
- Products
- pillow
- Affected versions
- Not specified
- Fixed versions
- 13.0.0
- CVEs
- CVE-2026-112394
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 17:55 UTC · Revision 1
Source evidence
Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
core-osv · Original sourcePublished 26 Oct 2026, 05:55 UTC
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.
osv:BIT-pillow-2026-112394
pillow
Fixed versions: 13.0.0
Complete source record
{
"id": "9ee45975f3eb8b42d05216484f1818214a4bd08aaa340fa7d9fbf934e51bcae4",
"url": "https://osv.dev/vulnerability/BIT-pillow-2026-112394",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size",
"summary": "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.",
"evidence": "osv:BIT-pillow-2026-112394",
"products": [
{
"name": {
"value": "pillow",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "13.0.0",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "BIT-pillow-2026-112394",
"aliases": [
"BIT-pillow-2026-112394",
"CVE-2026-112394",
"GHSA-4558-3h8r-v8xp",
"PYSEC-2026-4327"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "13.0.0"
}
]
}
],
"package": {
"name": "pillow",
"purl": "pkg:bitnami/pillow",
"ecosystem": "Bitnami"
},
"severity": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H"
}
],
"database_specific": {
"source": "https://github.com/bitnami/vulndb/tree/main/data/pillow/BIT-pillow-2026-112394.json"
}
}
],
"modified": "2026-10-27T11:10:34.006455299Z",
"provider": "osv",
"references": [
"https://github.com/python-pillow/Pillow/commit/392ee6f0d19a4adb766a63e9a99f3c28193b8d31",
"https://github.com/python-pillow/Pillow/releases/tag/13.0.0",
"https://github.com/python-pillow/Pillow/security/advisories/GHSA-4558-3h8r-v8xp",
"https://nvd.nist.gov/vuln/detail/CVE-2026-112394"
],
"provider_metadata": {
"cpes": [
"cpe:2.3:a:python:pillow:*:*:*:*:*:python:*:*"
],
"severity": "High"
}
},
"related_cves": [
{
"value": "CVE-2026-112394",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 461505,
"published_at": "2026-10-26T05:55:35.695+00:00"
}