pillow_heif is a Python library for working with HEIF images and plugin for Pillow. Prior to version 1.3.0, an integer overflow in the encode path buffer validation of _pillow_heif.c allows an attacker to bypass bounds checks by providing large image dimensions, resulting in a heap out-of-bounds read. This can lead to information disclosure (server heap memory leaking into encoded images) or denial of service (process crash). No special configuration is required — this triggers under default settings. Version 1.3.0 fixes the issue.
{
"cwe_ids": [
"CWE-125",
"CWE-190"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/28xxx/CVE-2026-28231.json"
}{
"source": [
"CPE_RANGE",
"REFERENCES"
],
"cpe": "cpe:2.3:a:bigcat88:pillow-heif:*:*:*:*:*:python:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "1.3.0"
}
]
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-28231.json"
[
{
"source": "https://github.com/bigcat88/pillow_heif/commit/8305a15d3780c533b762578cbe987d27a2c59c7a",
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "229049611692815523836991351280953004002",
"length": 1653.0
},
"id": "CVE-2026-28231-7e61bac2",
"target": {
"function": "_CtxWriteImage_add_plane_l",
"file": "pillow_heif/_pillow_heif.c"
},
"deprecated": false
},
{
"source": "https://github.com/bigcat88/pillow_heif/commit/8305a15d3780c533b762578cbe987d27a2c59c7a",
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"line_hashes": [
"246079929936737268733229901171032701314",
"110371096488593823279586643170395125212",
"234987017400952139396110290102137327023",
"15033829013945911038025639667639462153",
"246079929936737268733229901171032701314",
"110371096488593823279586643170395125212",
"234987017400952139396110290102137327023",
"15033829013945911038025639667639462153",
"246079929936737268733229901171032701314",
"110371096488593823279586643170395125212",
"234987017400952139396110290102137327023",
"15033829013945911038025639667639462153"
],
"threshold": 0.9
},
"id": "CVE-2026-28231-88d3275d",
"target": {
"file": "pillow_heif/_pillow_heif.c"
},
"deprecated": false
},
{
"source": "https://github.com/bigcat88/pillow_heif/commit/8305a15d3780c533b762578cbe987d27a2c59c7a",
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "291382291529431139650997524064320700110",
"length": 2457.0
},
"id": "CVE-2026-28231-922777ee",
"target": {
"function": "_CtxWriteImage_add_plane_la",
"file": "pillow_heif/_pillow_heif.c"
},
"deprecated": false
},
{
"source": "https://github.com/bigcat88/pillow_heif/commit/8305a15d3780c533b762578cbe987d27a2c59c7a",
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "4004059895367826926163106730994271899",
"length": 5640.0
},
"id": "CVE-2026-28231-93ddbcc7",
"target": {
"function": "_CtxWriteImage_add_plane",
"file": "pillow_heif/_pillow_heif.c"
},
"deprecated": false
}
]
"2026-07-15T19:00:07Z"