Skip to content
Heist/ feed
Back to feed
Medium

pypdf: Possible infinite loop when retrieving fonts for layout-mode text extraction

Type: advisorySources: OSV

pypdf is a free and open-source pure-python PDF library. Prior to 6.13.0, an attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires extracting the text in layout mode. This vulnerability is fixed in 6.13.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-54530
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 13:27 UTC · Revision 1

Source evidence

pypdf: Possible infinite loop when retrieving fonts for layout-mode text extraction

core-osv · Original source

Published 22 Jun 2026, 20:25 UTC

pypdf is a free and open-source pure-python PDF library. Prior to 6.13.0, an attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires extracting the text in layout mode. This vulnerability is fixed in 6.13.0.

osv:CVE-2026-54530
Complete source record
{
  "id": "c513e361e37dab2323d9f2b9a70bf0a017a76bc18a32746d9df7386807044bc0",
  "url": "https://osv.dev/vulnerability/CVE-2026-54530",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "pypdf: Possible infinite loop when retrieving fonts for layout-mode text extraction",
    "summary": "pypdf is a free and open-source pure-python PDF library. Prior to 6.13.0, an attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires extracting the text in layout mode. This vulnerability is fixed in 6.13.0.",
    "evidence": "osv:CVE-2026-54530",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-54530",
      "aliases": [
        "CVE-2026-54530",
        "GHSA-52x6-gq3r-vpf4",
        "PYSEC-2026-3009"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/py-pdf/pypdf",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "98afb457f1ab423c6f07975ccc418cbabc40665d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "6.13.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "98afb457f1ab423c6f07975ccc418cbabc40665d"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "6.13.0"
                  },
                  {
                    "cpe": "cpe:2.3:a:pypdf_project:pypdf:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "6.13.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "6.12.2",
            "6.12.1",
            "6.12.0",
            "6.11.0",
            "6.10.2",
            "6.10.1",
            "6.10.0",
            "6.9.2",
            "6.9.1",
            "6.9.0",
            "6.8.0",
            "6.7.5",
            "6.7.4",
            "6.7.3",
            "6.7.2",
            "6.7.1",
            "6.7.0",
            "6.6.2",
            "6.6.1",
            "6.6.0",
            "6.5.0",
            "6.4.2",
            "6.4.1",
            "6.4.0",
            "6.3.0",
            "6.2.0",
            "6.1.3",
            "6.1.2",
            "6.1.1",
            "6.1.0",
            "6.0.0",
            "5.9.0",
            "5.8.0",
            "5.7.0",
            "5.6.1",
            "5.6.0",
            "5.5.0",
            "5.4.0",
            "5.3.1",
            "5.3.0",
            "5.2.0",
            "5.1.0",
            "5.0.1",
            "5.0.0",
            "4.3.1",
            "4.3.0",
            "4.2.0",
            "4.1.0",
            "4.0.2",
            "4.0.1",
            "4.0.0",
            "3.17.4",
            "3.17.3",
            "3.17.2",
            "3.17.1",
            "3.17.0",
            "3.16.4",
            "3.16.3",
            "3.16.2",
            "3.16.1",
            "3.16.0",
            "3.15.5",
            "3.15.4",
            "3.15.3",
            "3.15.2",
            "3.15.1",
            "3.15.0",
            "3.14.0",
            "3.13.0",
            "3.12.2",
            "3.12.1",
            "3.12.0",
            "3.11.1",
            "3.11.0",
            "3.10.0",
            "3.9.1",
            "3.9.0",
            "3.8.1",
            "3.8.0",
            "3.7.1",
            "3.7.0",
            "3.6.0",
            "3.5.2",
            "3.5.1",
            "3.5.0",
            "3.4.1",
            "3.4.0",
            "3.3.0",
            "3.2.1",
            "3.2.0",
            "3.0.0",
            "3.1.0",
            "2.12.1",
            "2.12.0",
            "2.11.2",
            "2.11.1",
            "2.11.0",
            "2.10.9",
            "2.10.8",
            "2.10.7",
            "2.10.6",
            "2.10.5",
            "2.10.4",
            "2.10.3",
            "2.10.2",
            "2.10.1",
            "2.10.0",
            "2.9.0",
            "2.8.1",
            "2.8.0",
            "2.7.0",
            "2.6.0",
            "2.5.0",
            "2.4.2",
            "2.4.1",
            "2.4.0",
            "2.3.1",
            "2.3.0",
            "2.2.1",
            "2.2.0",
            "2.1.1",
            "2.1.0",
            "2.0.0",
            "1.28.2",
            "1.28.1",
            "1.28.0",
            "1.27.12",
            "1.27.11",
            "1.27.10",
            "1.27.9",
            "1.27.8",
            "1.27.7",
            "1.27.6",
            "1.27.5",
            "1.27.4",
            "1.27.3",
            "1.27.2",
            "1.27.1",
            "1.27.0",
            "v1.24",
            "1.26.0",
            "v1.25.1",
            "v1.25",
            "v1.23",
            "v1.22",
            "v1.21",
            "v1.20",
            "v1.19",
            "v1.18",
            "v1.17"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54530.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:28.942373937Z",
      "provider": "osv",
      "references": [
        "https://github.com/py-pdf/pypdf/releases/tag/6.13.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54530.json",
        "https://github.com/py-pdf/pypdf/security/advisories/GHSA-52x6-gq3r-vpf4",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-54530",
        "https://github.com/py-pdf/pypdf/pull/3830"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-835"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54530.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-54530",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 495856,
  "published_at": "2026-06-22T20:25:29.305+00:00"
}