GitHub Advisoryadvisory · PyPI

GHSA-8ppf-4f7h-5ppj pyasn1: Quadratic complexity in OBJECT IDENTIFIER and RELATIVE-OID processing allows denial of service

HIGH Published 2026-07-21 Modified 2026-07-21 Official page ↗
Aliases
CVE-2026-59885
Ecosystem
PyPI
Packages
pyasn1
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-400, CWE-407
Reviewed
2026-07-21

Affected packages

• PyPI pyasn1: < 0.6.4 → fixed in 0.6.4

Description

Impact The BER/CER/DER decoders process OBJECT IDENTIFIER and RELATIVE-OID values in quadratic time relative to the number of arcs. A small crafted payload (tens of kilobytes) containing an OID with many arcs consumes seconds of CPU per decode() call, allowing denial of service in any application that decodes untrusted ASN.1 data (certificates, LDAP, SNMP, Kerberos, etc.). The corresponding encoders have the same quadratic behavior, reachable when an application re-encodes previously decoded attacker-supplied values. The arc-size limit introduced for CVE-2026-23490 bounds the byte length of an individual arc but not the number of arcs, so it does not mitigate this issue. Affected components ObjectIdentifierPayloadDecoder and RelativeOIDPayloadDecoder in pyasn1/codec/ber/decoder.py; ObjectIdentifierEncoder and RelativeOIDEncoder in pyasn1/codec/ber/encoder.py. The CER and DER codecs inherit these and are equally affected. Patches Fixed in pyasn1 0.6.4: arc accumulation in both decoders and encoders now runs in linear time. Workarounds Limit the size of untrusted ASN.1 input before decoding.

Related

Alias · CVE (1)

  • CVE-2026-59885 pyasn1 is a generic ASN.1 library for Python. vulnerability

Weakness · CWE (2)

  • CWE-400 Uncontrolled Resource Consumption weakness
  • CWE-407 Inefficient Algorithmic Complexity weakness

References