Skip to content
Heist/ feed
Back to feed
High

Pillow: Infinite loop in MIC n_frames when the embedded TIFF

Type: advisorySources: OSV

Pillow is a Python imaging library. From 7.2.0 until 13.0.0, Pillow can enter an infinite loop while determining the frame count of a MIC image. MicImageFile inherits TIFF frame traversal, but MicImageFile.tell reports the OLE stream index and its seek() resets TIFF frame state, so an embedded TIFF with at least three IFDs never advances. When an application with olefile installed reads n_frames or saves all frames from a crafted MIC file, the non-advancing traversal can hold a worker at full CPU indefinitely. This issue is fixed in version 13.0.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-112390
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:34 UTC · Revision 1

Source evidence

Pillow: Infinite loop in MIC n_frames when the embedded TIFF

core-osv · Original source

Published 19 Oct 2026, 20:35 UTC

Pillow is a Python imaging library. From 7.2.0 until 13.0.0, Pillow can enter an infinite loop while determining the frame count of a MIC image. MicImageFile inherits TIFF frame traversal, but MicImageFile.tell reports the OLE stream index and its seek() resets TIFF frame state, so an embedded TIFF with at least three IFDs never advances. When an application with olefile installed reads n_frames or saves all frames from a crafted MIC file, the non-advancing traversal can hold a worker at full CPU indefinitely. This issue is fixed in version 13.0.0.

osv:CVE-2026-112390
Complete source record
{
  "id": "d6376cee329bfd48be9753a0a0acb690df3180ab7e27fff451592a0e0e51e2cd",
  "url": "https://osv.dev/vulnerability/CVE-2026-112390",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Pillow: Infinite loop in MIC n_frames when the embedded TIFF",
    "summary": "Pillow is a Python imaging library. From 7.2.0 until 13.0.0, Pillow can enter an infinite loop while determining the frame count of a MIC image. MicImageFile inherits TIFF frame traversal, but MicImageFile.tell reports the OLE stream index and its seek() resets TIFF frame state, so an embedded TIFF with at least three IFDs never advances. When an application with olefile installed reads n_frames or saves all frames from a crafted MIC file, the non-advancing traversal can hold a worker at full CPU indefinitely. This issue is fixed in version 13.0.0.",
    "evidence": "osv:CVE-2026-112390",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-112390",
      "aliases": [
        "BIT-pillow-2026-112390",
        "CVE-2026-112390",
        "GHSA-22hg-r758-rrw9"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/python-pillow/pillow",
              "type": "GIT",
              "events": [
                {
                  "introduced": "2bd74943fb9f320def6c066e732b701d1c15f677"
                },
                {
                  "fixed": "293218ad059d994baf1777d882911bed6a49704a"
                },
                {
                  "fixed": "26cb3ed061173b817b9ee4b6f507cb0e1e293218"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "7.2.0"
                      },
                      {
                        "fixed": "13.0.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "26cb3ed061173b817b9ee4b6f507cb0e1e293218"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "293218ad059d994baf1777d882911bed6a49704a"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "13.0.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "12.3.0",
            "12.2.0",
            "12.1.0",
            "12.0.0",
            "11.3.0",
            "11.2.1",
            "11.1.0",
            "11.0.0",
            "10.4.0",
            "10.3.0",
            "10.2.0",
            "10.1.0",
            "10.0.0",
            "9.5.0",
            "9.4.0",
            "9.3.0",
            "9.2.0",
            "9.1.0",
            "9.0.0",
            "8.4.0",
            "8.3.0",
            "8.2.0",
            "8.1.0",
            "8.0.0",
            "7.2.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-112390.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.015926814Z",
      "provider": "osv",
      "references": [
        "https://github.com/python-pillow/Pillow/releases/tag/13.0.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/112xxx/CVE-2026-112390.json",
        "https://github.com/python-pillow/Pillow/security/advisories/GHSA-22hg-r758-rrw9",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-112390",
        "https://github.com/python-pillow/Pillow/commit/26cb3ed061173b817b9ee4b6f507cb0e1e293218"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-835"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/112xxx/CVE-2026-112390.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-112390",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 514314,
  "published_at": "2026-10-19T20:35:39.189+00:00"
}