Уязвимость DoS атаки через чрезмерное использование ресурсов в Python при декодировании IDNA-имён
Описание
В Python до версии 3.11.1 обнаружена уязвимость, связанная с некорректным использованием квадратичного алгоритма при обработке входных данных в декодере IDNA (RFC 3490). Это может привести к отказу в обслуживании (DoS) процессора при декодировании специально подготовленного очень длинного имени. Хосты часто предоставляются удалёнными серверами, которые могут находиться под контролем злоумышленника; в такой ситуации они способны вызвать чрезмерное потребление ресурсов процессора на клиенте, который пытается использовать предполагаемое имя хоста, предоставленное злоумышленником. Например, вредоносная нагрузка может быть размещена в заголовке Location в ответе HTTP с кодом состояния 302.
Затронутые версии ПО
- Python до версии 3.11.1
- Python 3.10.9
- Python 3.9.16
- Python 3.8.16
- Python 3.7.16
Тип уязвимости
DoS атака
Ссылки
- ExploitPatchThird Party Advisory
Уязвимые конфигурации
Одно из
Одно из
Одно из
Одновременно
EPSS
7.5 High
CVSS3
Дефекты
Связанные уязвимости
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.
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.
An issue was discovered in Python before 3.11.1. An unnecessary quadra ...
EPSS
7.5 High
CVSS3