Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach schemaless ASN.1 decode endpoint
-
DeliveryCraft BER/CER/DER with many colliding long tag IDs
-
ExploitSubmit payload to decoder.decode (no schema)
-
ExecutionQuadratic TagSet comparisons in _decodeComponentsSchemaless
-
PersistRepeat requests to exhaust CPU
-
ImpactService availability degraded
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
|
| Exploitation Conditions | The application must decode attacker-controlled BER, CER, or DER bytes in SCHEMALESS mode - i.e. calling pyasn1's decoder without supplying an asn1Spec, which routes through ConstructedPayloadDecoderBase._decodeComponentsSchemaless (present in v0.6.4 and inherited by the CER and DER decoders). The malicious input is a constructed container holding many distinct long-form tag IDs whose TagSet hashes collide, so each insertion compares against a growing set of prior tags. Limiting factors: schema-based decoding (with an explicit asn1Spec) is not on this path and is unaffected; the attacker must be able to supply the raw encoded bytes; and impact is confined to CPU/availability - decoded values and order remain correct, so no data corruption or disclosure results. |
| Impact | This is a genuine but bounded availability issue, not a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) is credible for a network-reachable, unauthenticated algorithmic-complexity DoS (CWE-407), and all impact is on availability only - the GHSA advisory explicitly states no confidentiality or integrity impact was observed, which contradicts the input 'Information Disclosure' tag. The vuln.today Decision label is 'this_week' (not act_now/emergency), consistent with a DoS rather than RCE. No CISA KEV listing and no EPSS score are provided in the input, so there is no signal of active or widespread exploitation; however, the GHSA advisory ships a complete, working proof-of-concept demonstrating ~4x CPU growth when component count doubles (0.438s→1.747s at 3,200→6,400 colliding components on CPython 3.12.10), so exploitability is well established in principle. The real-world priority is tempered by a key precondition the CVSS vector does not capture: exploitation only affects applications performing SCHEMALESS decoding of attacker-controlled input - AV:N/AC:L/PR:N describes severity under that condition but not the deployment prevalence of that code path. Net: patch promptly in services that decode untrusted ASN.1 without a schema, but this is a resource-exhaustion bug, not memory corruption or data exposure. |
| Exploit ScenarioDerived | An attacker sends a single small but crafted BER/CER/DER message to a network service that decodes it with pyasn1 in schemaless mode (e.g. decoder.decode() with no asn1Spec). The payload packs many distinct long-form tag IDs chosen so their TagSet hashes collide, forcing quadratic comparison work during decode and spiking CPU. A working proof-of-concept is published in the GHSA-fm9c-5rcf-2q5p advisory, and repeated such requests can exhaust CPU and degrade or deny service. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 29, 2026
Quadratic CPU consumption in pyasn1's schemaless BER/CER/DER container decoder (versions 0.3.3 through 0.6.4) lets remote unauthenticated attackers tie up a decoding service with a small, syntactically valid input. ConstructedPayloadDecoderBase._decodeComponentsSchemaless inserts every decoded component's TagSet into a growing set, so a container packed with distinct long-form tag IDs whose TagSet hashes collide forces each insertion to compare against all earlier colliding tags; the proof-of-concept script published in the upstream advisory shows decode CPU time rising from roughly 0.44s to 1.75s when the component count doubles from 3,200 to 6,400 on CPython 3.12.10 with pyasn1 0.6.4. Impact is confined to availability (decoded values and their order remain correct), exploitation requires the application to decode attacker-supplied bytes without an asn1Spec, no confirmed active exploitation or KEV listing exists at time of analysis, and the upstream fix is version 0.6.5, making this a this-week patch item rather than an emergency.
RemediationAI
Upgrade to pyasn1 0.6.5, the vendor-released fix (release tag v0.6.5; the changelog entry for Revision 0.6.5, released 26-10-2026, notes that schemaless container type tracking is bounded after two distinct tag sets to prevent quadratic CPU use from colliding long tag IDs, alongside several other decoder complexity fixes worth taking in the same bump). Where an immediate upgrade is not possible, pass an explicit asn1Spec for every decode of untrusted data so the schema-driven path is used instead of _decodeComponentsSchemaless - the trade-off is that a schema must be maintained and inputs containing tags outside it will be rejected rather than decoded generically. Additionally cap the byte size and component count of accepted BER/CER/DER input before decoding and run untrusted decoding in a worker with a CPU-time limit, accepting that such limits are tuning measures rather than a complete fix. Vendor advisory: https://github.com/pyasn1/pyasn1/security/advisories/GHSA-fm9c-5rcf-2q5p.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pyasn1 is a pure-Python ASN.1 library whose BER, CER and DER codecs decode tag-length-value elements; when no asn1Spec is supplied the decoder runs in schemaless mode, routing constructed containers through ConstructedPayloadDecoderBase._decodeComponentsSchemaless. That routine tracked the TagSet of every decoded component in a set purely to tell whether the container holds one repeating type or several distinct types, but the set was never bounded. ASN.1 BER allows long-form tag identifiers encoded as a 0xBF lead byte plus base-128 continuation octets, so an attacker can choose arbitrary large tag IDs; by picking IDs whose TagSet hashes collide (the PoC derives them from sys.hash_info.modulus), every subsequent set insertion degrades into a linear scan over previously stored colliding tags, yielding O(n^2) behaviour in the number of components while the input stays small and valid. The weakness class is CWE-407 (inefficient algorithmic complexity), the CER and DER decoders inherit the same constructed-payload base class, and the 0.6.5 fix caps the classification set once two distinct tag sets have been seen, still returning every decoded component in its original order. Schema-driven decoding with an explicit asn1Spec does not take this path and is unaffected.
Know when Pyasn1 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated attacker supplies crafted bytes to a schemaless decoder with no user interaction (AV:N/AC:L/PR:N/UI:N); only CPU exhaustion results, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
pyasn1 is a generic ASN.1 library for Python. From 0.3.3 until 0.6.5, schemaless container decoding stores every decoded component's TagSet in a growing set even though only one-versus-multiple tag types must be distinguished. Attacker-controlled BER, CER, or DER input contains many distinct long tag IDs whose TagSet hashes collide. Each later set insertion compares against an increasing number of earlier colliding tags in ConstructedPayloadDecoderBase._decodeComponentsSchemaless, producing quadratic CPU work while decoded values and order remain valid. Repeated inputs can exhaust decoder CPU and reduce service availability. This issue is fixed in version 0.6.5.
Blast Radius
ecosystem impact- 1 pypi packages depend on pyasn1 (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.3.3.
Technical POC Analysis
Note on evidence: the supplied material is GitHub Security Advisory GHSA-fm9c-5rcf-2q5p plus its proof-of-concept script.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
A high-severity algorithmic complexity flaw in the widely-used pyasn1 library (versions 0.3.3 through 0.6.4) can allow remote unauthenticated attackers to degrade or stall any service that decodes untrusted BER/CER/DER data without a fixed schema. Because pyasn1 is a common transitive dependency across Python applications, identity, and network services, leadership should treat this as a broad availability and service-continuity risk until the library is upgraded and decoder exposure is mapped.
Vendor-released patch: 0.6.5
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
pyasn1 is a generic ASN.1 library for Python. versions up to 0.6.2 is affected by allocation of resources without limits
Quadratic-time CPU exhaustion in pyasn1 0.6.4 and earlier allows remote, unauthenticated attackers to tie up decoding wo
Quadratic-time denial of service in pyasn1 0.6.4 and earlier lets an attacker who can feed ASN.1 data into the library's
Quadratic CPU consumption in pyasn1 through 0.6.4 lets an attacker who controls ASN.1 input keep a decoder worker busy f
Denial of service in the pyasn1 Python ASN.1 library (versions prior to 0.6.4) allows a remote attacker to exhaust CPU a
Denial of service in the pyasn1 Python ASN.1 library (all versions prior to 0.6.4) allows remote attackers to exhaust CP
Uncontrolled resource consumption in the pyasn1 Python ASN.1 library (versions prior to 0.6.4) lets remote attackers han
EUVD-2026-113350
GHSA-fm9c-5rcf-2q5p
NVD
CVE.org
EPSS
Exploit-DB