Description
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.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| n/a | n/a | n/a |
References
- https://docs.python.org/3/library/email.htmlProduct
- https://docs.python.org/3/library/email.utils.htmlProduct
- https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.pyProduct
- https://github.com/python/cpython/issues/103800Exploit, Issue Tracking
- https://docs.python.org/3/library/email.htmlProduct
- https://docs.python.org/3/library/email.utils.htmlProduct
- https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.pyProduct
- https://github.com/python/cpython/issues/103800Exploit, Issue Tracking
Timeline
- Published
- Jun 25, 2023
- Last modified
- Jun 17, 2026
- NVD status
- Modified