CVE-2026-59204

Source
https://cve.org/CVERecord?id=CVE-2026-59204
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-59204.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-59204
Aliases
Downstream
Related
Published
2026-07-14T15:38:29.545Z
Modified
2026-07-23T15:14:50.541013675Z
Severity
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Pillow JPEG2000 tiled decode retains a growing scratch buffer and can be used for denial of service
Details

Pillow is a Python imaging library. From 8.2.0 through 12.2.0, src/libImaging/Jpeg2KDecode.c accumulates totalcomponentwidth across every tile in a JPEG2000 image instead of recomputing it per tile, allowing a crafted tiled JPEG2000 file to force substantially higher transient memory usage and trigger out-of-memory failures during decoding. This issue is fixed in version 12.3.0.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-789"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59204.json"
}
References

Affected packages

Git / github.com/python-pillow/pillow

Affected ranges

Type
GIT
Repo
https://github.com/python-pillow/pillow
Events
Database specific
{
    "source": [
        "CPE_RANGE",
        "REFERENCES"
    ],
    "cpe": "cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*",
    "extracted_events": [
        {
            "introduced": "8.2.0"
        },
        {
            "fixed": "12.3.0"
        }
    ]
}

Affected versions

10.*
10.0.0
10.1.0
10.2.0
10.3.0
10.4.0
11.*
11.0.0
11.1.0
11.2.1
11.3.0
12.*
12.0.0
12.1.0
12.2.0
8.*
8.2.0
8.3.0
8.4.0
9.*
9.0.0
9.1.0
9.2.0
9.3.0
9.4.0
9.5.0

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-59204.json"
vanir_signatures_modified
"2026-07-23T08:16:30Z"
vanir_signatures
[
    {
        "source": "https://github.com/python-pillow/pillow/commit/13ada41172142f2fd9f0906f615a00ea623a11ca",
        "deprecated": false,
        "signature_type": "Line",
        "target": {
            "file": "src/libImaging/Jpeg2KDecode.c"
        },
        "id": "CVE-2026-59204-6289961c",
        "signature_version": "v1",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "291688561660707804276815887228166717799",
                "264534465699635397772598286647326644689",
                "292509477046047446378274593332551812301",
                "189228586624185902837887542284463616471",
                "105633872374323187754703844676181373460",
                "23905744739649837941053605454746852793",
                "246883239106134902990532735369164409266"
            ]
        }
    },
    {
        "source": "https://github.com/python-pillow/pillow/commit/13ada41172142f2fd9f0906f615a00ea623a11ca",
        "deprecated": false,
        "signature_type": "Function",
        "id": "CVE-2026-59204-7f7a3275",
        "target": {
            "function": "j2k_decode_entry",
            "file": "src/libImaging/Jpeg2KDecode.c"
        },
        "signature_version": "v1",
        "digest": {
            "length": 4860.0,
            "function_hash": "172830296100755463424665802641356405889"
        }
    }
]