{"id":"CVE-2026-55619","aliases":["GHSA-m66c-fw79-6359","PYSEC-2026-3833"],"title":"eml_parser has parser DoS via deeply nested parentheses in e-mail headers","summary":"eml_parser has parser DoS via deeply nested parentheses in e-mail headers","severity":"medium","cvss":5.3,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","vendor":"eml-parser","product":"eml-parser","ecosystem":"pip","affected":["eml-parser < 3.0.2"],"patched":["eml-parser 3.0.2"],"published":"2026-08-25","updated":"2026-09-10","sourceUpdated":"2026-09-10T12:25:57.609576367Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-m66c-fw79-6359","references":[{"url":"https://github.com/GOVCERT-LU/eml_parser/security/advisories/GHSA-m66c-fw79-6359"},{"url":"https://github.com/GOVCERT-LU/eml_parser/pull/90"},{"url":"https://github.com/GOVCERT-LU/eml_parser/commit/746a69f86443eb0b6a47f77db3cfe727c21f92b3"},{"url":"https://github.com/GOVCERT-LU/eml_parser"},{"url":"https://github.com/GOVCERT-LU/eml_parser/releases/tag/v3.0.2"},{"url":"https://pypi.org/project/eml-parser"},{"url":"https://github.com/advisories/GHSA-m66c-fw79-6359"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55619"}],"tags":["osv","pip","nvd","ghsa"],"epss":0.00524,"epssPercentile":0.41918,"cwe":["CWE-770","CWE-1124"],"ingestedAt":"2026-08-25T18:30:21.038Z","slug":"CVE-2026-55619","body":"## Overview\n\n### Summary\n\n`eml_parser` uses the `email.utils.getaddresses()` function from the CPython standard library to parse e-mail headers that contain e-mail addresses (such as `To`, `Cc`, `Bcc`, `From`, `Reply-To`, `Sender`, ...). When the input header contains a deeply nested CFWS (comment / folding white space) construct, the recursive descent parser in the standard library exhausts the call stack. The resulting `RecursionError` is not caught by `eml_parser`, so the exception propagates and aborts parsing of the whole message.\n\n### Impact\n\nSOC pipelines use `eml_parser` to process untrusted e-mails. An attacker can easily create an eml file that will trigger the `RecursionError` during parsing.\n\nThe impact is mitigated by the fact that there are various other situations in which `eml_parser` will raise an exception when attempting to parse a malformed or pathological eml file. In particular, very deeply nested multipart e-mails also result in a `RecursionError` being raised by the library voluntarily. Therefore, systems relying on `eml_parser` already need to detect and handle errors emanating from the library in an appropriate way.\n\n### Workarounds\n\nThe issue can be avoided by wrapping the call to `eml_parser.decode_email` or `eml_parser.decode_email_bytes` in a `try/except` construct.\n\n### Patches\n\nSince version 3.0.2, `eml_parser` will catch the error in the standard library parser and fall back to a simpler parser based on a regular expression.\n\n## Affected packages\n\n- `eml-parser < 3.0.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `eml-parser 3.0.2`","depth":"sunlit","depthScore":29,"depthScoreParts":{"impact":29.2,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}