Tag: pip

  • GHSA-5849-834g-hvw5: pypdf has possible infinite loop when hitting EOF in standard xref table during trailer search

    • Severity: HIGH
    • CVE: CVE-2026-119203
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires opening an incomplete file without a `trailer`.

    ### Patches

    This has been fixed in [pypdf==6.21.4](https://github.com/py-pdf/pypdf/releases/tag/6.21.4).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4289](https://github.com/py-pdf/pypdf/pull/4289).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-cggf-277g-3q54: pypdf has possible large memory usage when parsing page tree

    • Severity: HIGH
    • CVE: CVE-2026-119204
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires parsing the page tree with many shared resources.

    ### Patches

    This has been fixed in [pypdf==6.21.4](https://github.com/py-pdf/pypdf/releases/tag/6.21.4).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4290](https://github.com/py-pdf/pypdf/pull/4290).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-mfr5-77xh-9j7h: pypdf has possible infinite loop when cloning dictionaries

    • Severity: HIGH
    • CVE: CVE-2026-119205
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires cloning/duplicating a `DictionaryObject`.

    ### Patches

    This has been fixed in [pypdf==6.21.4](https://github.com/py-pdf/pypdf/releases/tag/6.21.4).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4288](https://github.com/py-pdf/pypdf/pull/4288).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-c73q-w75p-j82v: Authlib RFC 7592 examples omit registration-access-token client binding

    • Severity: HIGH
    • CVE: CVE-2026-116672
    • Ecosystems: pip
    • Packages: Authlib

    ## Description

    ### Summary

    RFC 7592 (OAuth 2.0 Dynamic Client Registration Management Protocol) lets a previously registered client read, update, or delete its own registration, authenticated by a `registration_access_token` issued specifically to that client at registration time. The entire security model of this protocol depends on the server verifying that the token presented in the request actually belongs to the client identified in the request, not merely that the token is valid for some client.

    Authlib’s `ClientConfigurationEndpoint` implements the control flow correctly in structure, calling `authenticate_token`, then `authenticate_client`, then `check_permission`, and treats all three as abstract methods that “Developers MUST implement in subclass.” The problem is that the documented example implementations for these methods, taken together exactly as written, never perform the one check that matters: binding the authenticated token to the specific client being accessed. A developer who implements these methods by following the provided examples ends up with a complete authorization bypass on this endpoint.

    ### Details

    `authenticate_client`’s documented example (`authlib/oauth2/rfc7592/endpoint.py`):

    “`python
    def authenticate_client(self, request):
    “””Read a client from the request payload.
    Developers MUST implement this method in subclass::

    def authenticate_client(self, request):
    client_id = request.payload.data.get(“client_id”)
    return Client.get(client…

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-42gh-23hr-vphw: pypdf has possible long runtimes when retrieving page labels

    • Severity: HIGH
    • CVE: CVE-2026-119206
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to large runtimes. This requires retrieving the page labels of a file.

    ### Patches

    This has been fixed in [pypdf==6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4251](https://github.com/py-pdf/pypdf/pull/4251).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-4vqv-7265-gm2w: pypdf has possible large memory usage for exceptions in strict mode

    • Severity: HIGH
    • CVE: CVE-2026-119207
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires loading an invalid dictionary.

    ### Patches

    This has been fixed in [pypdf==6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4265](https://github.com/py-pdf/pypdf/pull/4265).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-62m5-6wh8-28×7: pypdf has possible long runtimes/large memory usage for encrypted PDF files

    • Severity: HIGH
    • CVE: CVE-2026-119208
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to large runtimes/memory usage. This requires accessing the page count of an encrypted PDF file, which itself declares a wrong `/Count` value.

    ### Patches

    This has been fixed in [pypdf==6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4270](https://github.com/py-pdf/pypdf/pull/4270).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-x3rh-gjgm-fmqc: pypdf has possible large memory usage when parsing cross-reference streams

    • Severity: HIGH
    • CVE: CVE-2026-119209
    • Ecosystems: pip
    • Packages: pypdf

    ### Impact

    An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires opening a file with cross-reference streams.

    ### Patches

    This has been fixed in [pypdf==6.21.3](https://github.com/py-pdf/pypdf/releases/tag/6.21.3).

    ### Workarounds

    If you cannot upgrade yet, consider applying the changes from PR [#4269](https://github.com/py-pdf/pypdf/pull/4269).

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-2qm8-x737-gmw5: pyasn1 has quadratic CPU consumption in constructed BIT STRING decoding

    • Severity: HIGH
    • CVE: CVE-2026-119196
    • Ecosystems: pip
    • Packages: pyasn1

    ## Summary

    In pyasn1 through 0.6.4, decoding a constructed BIT STRING with many fragments repeatedly shifts and copies the entire value accumulated so far. For fixed-size fragments, CPU time grows quadratically with the encoded input size. An application that passes sufficiently large, attacker-controlled ASN.1 data to an affected decoder can suffer CPU exhaustion during `decode()`; no conversion or formatting of the decoded value is required.

    The BER and CER decoders reach this path for constructed BIT STRING values, with or without an `asn1Spec`. The DER decoder rejects constructed BIT STRING in schema-less decoding, but its schema-driven path accepts a **definite-length** constructed BIT STRING when given a matching `asn1Spec` and reaches the same vulnerable code. Constructed BIT STRING is not valid DER; this DER exposure is due to decoder permissiveness. DER rejects the indefinite-length form.

    This is a separate decoder path from the OBJECT IDENTIFIER accumulation fixed in [CVE-2026-59885](https://github.com/advisories/GHSA-8ppf-4f7h-5ppj).

    ## Technical details

    In the 0.6.4 [`BitStringPayloadDecoder`](https://github.com/pyasn1/pyasn1/blob/v0.6.4/pyasn1/codec/ber/decoder.py#L173-L301), both the [definite-length](https://github.com/pyasn1/pyasn1/blob/v0.6.4/pyasn1/codec/ber/decoder.py#L237-L255) and [indefinite-length](https://github.com/pyasn1/pyasn1/blob/v0.6.4/pyasn1/codec/ber/decoder.py#L275-L301) fragment loops call `BitString.fromOctetString(…, prepend=bitStrin…

    Source: GitHub Security Advisories · 2026-10-30

  • GHSA-mm57-4v3p-rchx: pyasn1 has quadratic-complexity denial of service in binary REAL decoding

    • Severity: HIGH
    • CVE: CVE-2026-119197
    • Ecosystems: pip
    • Packages: pyasn1

    ## Summary

    In pyasn1 0.6.4 and earlier, decoding a binary-encoded ASN.1 REAL with a large mantissa can consume CPU time quadratic in the mantissa length. The BER, CER, and DER decoders all use the affected `RealPayloadDecoder`. An application is exposed when it passes attacker-controlled ASN.1 containing a REAL value to one of these decoders, either without an `asn1Spec` or with a schema that includes REAL. The work occurs inside `decode()`; the application does not need to convert, print, or otherwise use the resulting REAL object.

    This is distinct from [CVE-2026-59886](https://github.com/advisories/GHSA-hm4w-wwcw-mr6r), which concerns converting an already-decoded REAL to a Python float. That issue was fixed in 0.6.4 and its advisory states that decoding alone does not trigger it.

    ## Root cause and affected components

    For binary REAL values, [`RealPayloadDecoder.valueDecoder` in v0.6.4](https://github.com/pyasn1/pyasn1/blob/v0.6.4/pyasn1/codec/ber/decoder.py#L535-L603) builds the mantissa one octet at a time:

    “`python
    p = 0
    while chunk:
    p

    Source: GitHub Security Advisories · 2026-10-30