pypdf, a pure-Python PDF library, can consume excessive memory when opening a crafted PDF whose cross-reference streams declare very large entry counts. An attacker can use this to cause a denial of service in applications that parse untrusted PDF files. No authentication is required, and the CNA rates the CVSS 4.0 score at 7.1 (High), with availability as the only impact.
py-pdf · pypdf
pypdf, a pure-Python PDF library, can consume excessive time and memory when an application reads the page count of a crafted encrypted PDF whose page tree declares a forged /Count value. After decryption, the library trusts the declared count instead of walking the page tree. An attacker can cause denial of service by supplying such a file to an application that parses untrusted PDFs.
py-pdf · pypdf
pypdf, a pure-Python PDF library, can consume excessive memory when strict mode parses a crafted invalid PDF dictionary. Nested parsing failures repeat exception text in newly raised errors, so a small malformed dictionary can produce very large error messages. An attacker can exhaust memory and crash the processing application, which is a denial of service. This requires an application that parses untrusted PDFs with strict mode enabled.
py-pdf · pypdf
pypdf, a pure-Python PDF library, takes excessive time to retrieve page labels from a crafted PDF that contains a flat page-label number tree with many ranges. The page_labels property scans the same /Nums array repeatedly for every page, so the work grows with both the page count and the number of label ranges. An attacker can cause long runtimes (denial of service) by supplying such a file to an application that reads page labels; confidentiality and integrity are not affected. Exploitation requires user interaction, such as opening or processing the file.
py-pdf · pypdf
pypdf, a pure-Python library for processing PDF files, can enter an infinite loop when cloning or duplicating a specially crafted PDF with cyclic dictionary references. The cycle check compared generated destination references instead of the original source references, so some cycles were not detected. An attacker who can get such a file processed by an application using pypdf can exhaust the CPU of the worker process, which causes a hang or service degradation. Confidentiality and integrity are not affected, and no authentication is required if the application accepts PDFs from outside.
py-pdf · pypdf
pypdf versions before 6.21.4 can consume excessive memory when parsing a crafted PDF whose page tree contains many shared resources. Page-tree flattening copies page entries without a document-wide limit, so a single file can cause disproportionate allocations. An attacker who can get such a PDF processed by an application can cause a denial of service (crashed or slowed worker); no data is disclosed or modified, and the attack needs no privileges but requires that a user or application processes the file.
py-pdf · pypdf
pypdf, a pure-Python library for reading and processing PDF files, can enter an infinite loop when it opens a crafted, incomplete PDF whose standard cross-reference table reaches the end of the file without a trailer. The parsing thread is blocked, which denies service to the application using the library. Exploitation requires that an application opens such a file, for example one uploaded by a user, and the impact is limited to availability.
py-pdf · pypdf
pypdf, a pure-Python PDF library, is affected by an incomplete fix for an earlier issue (GHSA-55h5-xmcq-c37v). Crafted cross-reference streams with repeated malformed entries can force a complete reload of the PDF stream during each recovery attempt, even when a recovery cache is present. An attacker can use a crafted PDF to cause very long processing times, which results in denial of service; confidentiality and integrity are not affected. Exploitation requires that an application processes the untrusted PDF and, according to the CVSS vector, user interaction.
py-pdf · pypdf
pypdf before 6.21.2 does not sufficiently limit the declared entry count of standard cross-reference tables. An attacker can craft a PDF whose xref table declares more entries than the file can contain, which causes excessive processing and long runtimes when the file is opened. The issue affects availability only; no confidentiality or integrity impact is listed. Exploitation requires that a victim or an automated pipeline opens the crafted file.
py-pdf · pypdf
pypdf is a pure-Python PDF library that is often embedded in applications for processing PDF files. Before version 6.21.2, a crafted PDF that repeatedly references the same nonexistent indirect object forces repeated full-file recovery loads when pages or other parts are accessed. An attacker who can supply such a file to a PDF-processing service can cause very long runtimes, mainly tying up worker threads or processes (denial of service).
py-pdf · pypdf
Research and translation in progress – available shortly.
Research and translation in progress – available shortly.
Research and translation in progress – available shortly.
pypdf, a pure-Python library for reading and processing PDF files, does not limit the length of alphabetical page labels. A crafted PDF with unusually large alphabetical label values can make the application generate very long label strings when page labels are read, which consumes excessive memory. An attacker who can supply a PDF to an application that reads page labels can therefore make that application slow or unavailable; confidentiality and integrity are not affected.
py-pdf · pypdf
pypdf is a pure-Python library for reading and processing PDF files. Before version 6.17.0, a crafted PDF with unusually large Roman page-label values makes pypdf generate excessively large numeral strings when an application reads the page labels. An attacker can exhaust memory and make the processing application unavailable (denial of service). Exploitation requires that the application parses the attacker's PDF and retrieves its page labels.
py-pdf · pypdf