{"id":"CVE-2026-119195","state":"PUBLISHED","title":"pyasn1: Quadratic-time denial of service in constructed string and indefinite-length ANY decoding","description":"pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.5, constructed string and indefinite-length ANY decoding repeatedly concatenates each fragment onto a growing bytes value. Attacker-controlled BER or CER data can use many constructed OCTET STRING or character-string fragments. DER rejects constructed OCTET STRING without a schema, but accepts its definite-length form when asn1Spec selects univ.OctetString; it also accepts constructed character strings such as UTF8String without a schema, even though those encodings are not valid DER. The separate indefinite-length ANY path is reachable in BER and CER when asn1Spec selects univ.Any; DER rejects indefinite lengths. OctetStringPayloadDecoder uses growing header concatenation and AnyPayloadDecoder.indefLenValueDecoder uses growing chunk concatenation, repeatedly copying an increasing prefix and causing quadratic work. A sufficiently fragmented value can occupy decoding workers and cause CPU exhaustion without confidentiality or integrity impact. This issue is fixed in version 0.6.5.","publishedAt":"2026-10-29T19:41:37.352Z","updatedAt":"2026-10-29T20:26:31.801Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"GitHub_M"},"assigner":"GitHub_M","products":["pyasn1 pyasn1"],"affected":[{"vendor":"pyasn1","product":"pyasn1","versions":[{"version":"< 0.6.5","status":"affected"}]}],"references":["https://github.com/pyasn1/pyasn1/security/advisories/GHSA-9m75-vc3g-4x39","https://github.com/pyasn1/pyasn1/pull/132","https://github.com/pyasn1/pyasn1/commit/4ce00797c594b59c1fd6b86d9ebc3ba87b7ec9f9","https://github.com/pyasn1/pyasn1/releases/tag/v0.6.5"],"weaknesses":["CWE-407"],"ingestedAt":"2026-10-29T23:12:04.845Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/119xxx/CVE-2026-119195.json","commit":"dc7676b3f67d6707e4927968546e7e0125ff7ec7","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-119195","state":"PUBLISHED","datePublished":"2026-10-29T19:41:37.352Z","dateUpdated":"2026-10-29T20:26:31.801Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-10-29T16:04:48.728Z"},"containers":{"cna":{"title":"pyasn1: Quadratic-time denial of service in constructed string and indefinite-length ANY decoding","descriptions":[{"lang":"en","value":"pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.5, constructed string and indefinite-length ANY decoding repeatedly concatenates each fragment onto a growing bytes value. Attacker-controlled BER or CER data can use many constructed OCTET STRING or character-string fragments. DER rejects constructed OCTET STRING without a schema, but accepts its definite-length form when asn1Spec selects univ.OctetString; it also accepts constructed character strings such as UTF8String without a schema, even though those encodings are not valid DER. The separate indefinite-length ANY path is reachable in BER and CER when asn1Spec selects univ.Any; DER rejects indefinite lengths. OctetStringPayloadDecoder uses growing header concatenation and AnyPayloadDecoder.indefLenValueDecoder uses growing chunk concatenation, repeatedly copying an increasing prefix and causing quadratic work. A sufficiently fragmented value can occupy decoding workers and cause CPU exhaustion without confidentiality or integrity impact. This issue is fixed in version 0.6.5."}],"affected":[{"vendor":"pyasn1","product":"pyasn1","versions":[{"version":"< 0.6.5","status":"affected"}]}],"references":[{"url":"https://github.com/pyasn1/pyasn1/security/advisories/GHSA-9m75-vc3g-4x39","name":"https://github.com/pyasn1/pyasn1/security/advisories/GHSA-9m75-vc3g-4x39","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/pyasn1/pyasn1/pull/132","name":"https://github.com/pyasn1/pyasn1/pull/132","tags":["x_refsource_MISC"]},{"url":"https://github.com/pyasn1/pyasn1/commit/4ce00797c594b59c1fd6b86d9ebc3ba87b7ec9f9","name":"https://github.com/pyasn1/pyasn1/commit/4ce00797c594b59c1fd6b86d9ebc3ba87b7ec9f9","tags":["x_refsource_MISC"]},{"url":"https://github.com/pyasn1/pyasn1/releases/tag/v0.6.5","name":"https://github.com/pyasn1/pyasn1/releases/tag/v0.6.5","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-407","lang":"en","description":"CWE-407: Inefficient Algorithmic Complexity","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-29T19:41:37.352Z"},"source":{"advisory":"GHSA-9m75-vc3g-4x39","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/pyasn1/pyasn1/security/advisories/GHSA-9m75-vc3g-4x39","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-29T20:25:48.864403Z","id":"CVE-2026-119195","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-29T20:26:31.801Z"}}]}}}