CVE Vulnerabilities

CVE-2022-45061

Inefficient Algorithmic Complexity

Published: Nov 09, 2022 | Modified: Nov 07, 2023
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
Ubuntu

An issue was discovered in Python before 3.11.1. An unnecessary quadratic algorithm exists in one path when processing some inputs to the IDNA (RFC 3490) decoder, such that a crafted, unreasonably long name being presented to the decoder could lead to a CPU denial of service. Hostnames are often supplied by remote servers that could be controlled by a malicious actor; in such a scenario, they could trigger excessive CPU consumption on the client attempting to make use of an attacker-supplied supposed hostname. For example, the attack payload could be placed in the Location header of an HTTP response with status code 302. A fix is planned in 3.11.1, 3.10.9, 3.9.16, 3.8.16, and 3.7.16.

Weakness

An algorithm in a product has an inefficient worst-case computational complexity that may be detrimental to system performance and can be triggered by an attacker, typically using crafted manipulations that ensure that the worst case is being reached.

Affected Software

Name Vendor Start Version End Version
Python Python * 3.7.15 (including)
Python Python 3.8.0 (including) 3.8.15 (including)
Python Python 3.9.0 (including) 3.9.15 (including)
Python Python 3.10.0 (including) 3.10.8 (including)
Python Python 3.11.0 (including) 3.11.0 (including)
Python Python 3.11.0-alpha1 (including) 3.11.0-alpha1 (including)
Python Python 3.11.0-alpha2 (including) 3.11.0-alpha2 (including)
Python Python 3.11.0-alpha3 (including) 3.11.0-alpha3 (including)
Python Python 3.11.0-alpha4 (including) 3.11.0-alpha4 (including)
Python Python 3.11.0-alpha5 (including) 3.11.0-alpha5 (including)
Python Python 3.11.0-alpha6 (including) 3.11.0-alpha6 (including)
Python Python 3.11.0-alpha7 (including) 3.11.0-alpha7 (including)
Python Python 3.11.0-beta1 (including) 3.11.0-beta1 (including)
Python Python 3.11.0-beta2 (including) 3.11.0-beta2 (including)
Python Python 3.11.0-beta3 (including) 3.11.0-beta3 (including)
Python Python 3.11.0-beta4 (including) 3.11.0-beta4 (including)
Python Python 3.11.0-beta5 (including) 3.11.0-beta5 (including)
Python Python 3.11.0-rc1 (including) 3.11.0-rc1 (including)
Python Python 3.11.0-rc2 (including) 3.11.0-rc2 (including)

References