python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 49.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.
| Version | Type | Source | Base | Exp | Imp |
|---|---|---|---|---|---|
| 4.0 | Primary | cve.org | 8.7 | — | — |
| 4.0 | Primary | cve.org | 8.7 | — | — |
| 4.0 | Secondary | GHSA | 8.7 | — | — |
| 4.0 | Secondary | ENISA EUVD | 8.7 | — | — |
| 4.0 | Secondary | NVD | 8.7 | — | — |