Уязвимость вызова ошибки рекурсии (RecursionError) в функции "email.utils.parseaddr" устаревшего API Python
Описание
Функция email.utils.parseaddr
из устаревшего API Python до версии 3.11.4 позволяет злоумышленникам вызвать ошибку рекурсии (RecursionError: maximum recursion depth exceeded while calling a Python object
) путем передачи специально созданного аргумента. Этот аргумент может представлять собой ненадежное значение из входных данных приложения, которое предположительно должно содержать имя и адрес электронной почты.
Примечание: Функция email.utils.parseaddr
классифицируется как Legacy API в документации пакета email
Python. Вместо нее рекомендуется использовать классы email.parser.BytesParser
или email.parser.Parser
.
Примечание от разработчиков: Согласно позиции разработчиков, это не является ни уязвимостью, ни ошибкой. Пакет email
предназначен для работы с ограничениями размера и выбрасывает исключение при их превышении, что было продемонстрировано в примере кода.
Затронутые версии ПО
- Python <= 3.11.4
Тип уязвимости
Ошибка рекурсии
Ссылки
- Product
- Product
- Product
- ExploitIssue Tracking
- Product
- Product
- Product
- ExploitIssue Tracking
Уязвимые конфигурации
EPSS
7.5 High
CVSS3
Дефекты
Связанные уязвимости
** DISPUTED ** The legacy email.utils.parseaddr function in Python through 3.11.4 allows attackers to trigger "RecursionError: maximum recursion depth exceeded while calling a Python object" via a crafted argument. This argument is plausibly an untrusted value from an application's input data that was supposed to contain a name and an e-mail address. NOTE: email.utils.parseaddr is categorized as a Legacy API in the documentation of the Python email package. Applications should instead use the email.parser.BytesParser or email.parser.Parser class. NOTE: the vendor's perspective is that this is neither a vulnerability nor a bug. The email package is intended to have size limits and to throw an exception when limits are exceeded; they were exceeded by the example demonstration code.
The legacy email.utils.parseaddr function in Python through 3.11.4 allows attackers to trigger "RecursionError: maximum recursion depth exceeded while calling a Python object" via a crafted argument. This argument is plausibly an untrusted value from an application's input data that was supposed to contain a name and an e-mail address. NOTE: email.utils.parseaddr is categorized as a Legacy API in the documentation of the Python email package. Applications should instead use the email.parser.BytesParser or email.parser.Parser class. NOTE: the vendor's perspective is that this is neither a vulnerability nor a bug. The email package is intended to have size limits and to throw an exception when limits are exceeded; they were exceeded by the example demonstration code.
The legacy email.utils.parseaddr function in Python through 3.11.4 all ...
The legacy email.utils.parseaddr function in Python through 3.11.4 allows attackers to trigger "RecursionError: maximum recursion depth exceeded while calling a Python object" via a crafted argument. This argument is plausibly an untrusted value from an application's input data that was supposed to contain a name and an e-mail address. NOTE: email.utils.parseaddr is categorized as a Legacy API in the documentation of the Python email package. Applications should instead use the email.parser.BytesParser or email.parser.Parser class.
Уязвимость функции email.utils.parseaddr интерпретатора языка программирования Python, позволяющая нарушителю вызвать отказ в обслуживании
EPSS
7.5 High
CVSS3