Skip to content
Heist/ feed
Back to feed
Medium

Pillow EpsImagePlugin negative %%BeginBinary byte count causes infinite loop denial of service

Type: advisorySources: OSV

Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImagePlugin.py accepts a negative byte count in the %%BeginBinary directive, allowing a crafted EPS file to cause Image.open() to seek backwards to the same directive and parse it repeatedly in an infinite loop. This issue is fixed in version 12.3.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-59203
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 17:32 UTC · Revision 1

Source evidence

Pillow EpsImagePlugin negative %%BeginBinary byte count causes infinite loop denial of service

core-osv · Original source

Published 14 Jul 2026, 15:43 UTC

Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImagePlugin.py accepts a negative byte count in the %%BeginBinary directive, allowing a crafted EPS file to cause Image.open() to seek backwards to the same directive and parse it repeatedly in an infinite loop. This issue is fixed in version 12.3.0.

osv:CVE-2026-59203
Complete source record
{
  "id": "434cba7ca801126303dc54ec14a0dfaff0b929720dded109354faad13e2e0131",
  "url": "https://osv.dev/vulnerability/CVE-2026-59203",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Pillow EpsImagePlugin negative %%BeginBinary byte count causes infinite loop denial of service",
    "summary": "Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImagePlugin.py accepts a negative byte count in the %%BeginBinary directive, allowing a crafted EPS file to cause Image.open() to seek backwards to the same directive and parse it repeatedly in an infinite loop. This issue is fixed in version 12.3.0.",
    "evidence": "osv:CVE-2026-59203",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-59203",
      "aliases": [
        "BIT-pillow-2026-59203",
        "CVE-2026-59203",
        "GHSA-pg7v-jwj7-p798",
        "PYSEC-2026-3452"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/python-pillow/pillow",
              "type": "GIT",
              "events": [
                {
                  "introduced": "693df7b42c666f88c719f9973be0ad71607328e0"
                },
                {
                  "fixed": "bb1d8e8ab8d29048624d96e3ee53cecf7c13d13d"
                },
                {
                  "fixed": "03992618118b4a76b6163cd72ab5ecd684133b83"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "12.0.0"
                      },
                      {
                        "fixed": "12.3.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "03992618118b4a76b6163cd72ab5ecd684133b83"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "bb1d8e8ab8d29048624d96e3ee53cecf7c13d13d"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "12.3.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "12.2.0",
            "12.1.0",
            "12.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-59203.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:21.568663814Z",
      "provider": "osv",
      "references": [
        "https://github.com/python-pillow/Pillow/releases/tag/12.3.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59203.json",
        "https://github.com/python-pillow/Pillow/security/advisories/GHSA-pg7v-jwj7-p798",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-59203",
        "https://github.com/python-pillow/Pillow/commit/03992618118b4a76b6163cd72ab5ecd684133b83",
        "https://github.com/python-pillow/Pillow/pull/9708"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-835"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59203.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-59203",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 487824,
  "published_at": "2026-07-14T15:43:58.333+00:00"
}