CVE-2026-44844
Deferred Deferred - Pending Action
Stack Overflow in eml_parser Prior to 3.0.1

Publication date: 2026-05-26

Last updated on: 2026-06-01

Assigner: GitHub, Inc.

Description
eml_parser serves as a python module for parsing eml files and returning various information found in the e-mail as well as computed information. Prior to 3.0.1, EmlParser.get_raw_body_text() recurses unconditionally for every nested message/rfc822 attachment without any depth limit. An attacker who can supply a badly crafted EML file with approximately 120 nested message/rfc822 parts triggers an unhandled RecursionError and aborts parsing of the message. A 12 KB EML file is enough to crash a worker. Though this causes the parser to crash, it is an unlikely scenario as the suggested EML that crashes the parser would not pass basic RFC compliance tests. This vulnerability is fixed in 3.0.1.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-26
Last Modified
2026-06-01
Generated
2026-06-16
AI Q&A
2026-05-27
EPSS Evaluated
2026-06-14
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
eml_parser eml_parser 3.0.1
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-674 The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

The vulnerability causes the eml_parser module to crash when processing specially crafted EML files with deeply nested message parts, leading to a denial of service in parsing email content.

However, there is no direct information provided about how this vulnerability impacts compliance with common standards and regulations such as GDPR or HIPAA.

Executive Summary

The vulnerability exists in the eml_parser Python module, specifically in versions prior to 3.0.1. The method EmlParser.get_raw_body_text() recursively processes every nested message or rfc822 attachment without any limit on the recursion depth.

An attacker can craft a malicious EML file containing about 120 nested message/rfc822 parts, which triggers an unhandled RecursionError. This error causes the parser to crash and abort parsing the message.

Although this can crash the parser, the crafted EML file that causes this issue is unlikely to pass basic RFC compliance tests. The vulnerability was fixed in version 3.0.1 of eml_parser.

Impact Analysis

This vulnerability can cause the eml_parser to crash when processing a specially crafted EML file with deeply nested message parts.

If you rely on eml_parser to process emails, an attacker could exploit this to cause a denial of service by crashing the parser, potentially interrupting email processing workflows or worker processes.

However, the attack scenario is considered unlikely because the malicious EML file would not conform to basic RFC standards.

Mitigation Strategies

To mitigate this vulnerability, upgrade the eml_parser python module to version 3.0.1 or later, where the issue with unbounded recursion in get_raw_body_text() has been fixed.

Detection Guidance

This vulnerability can be detected by monitoring for crashes or errors in systems that parse EML files using vulnerable versions of the eml_parser Python package (versions 3.0.0 and earlier). Specifically, look for unhandled RecursionError exceptions or aborted parsing processes triggered by EML files containing deeply nested message/rfc822 parts (around 120 levels).

To detect potential exploitation attempts, you can scan incoming EML files for excessive nesting of message/rfc822 parts. Since the vulnerability triggers on approximately 120 nested levels, inspecting the structure of EML files for such deep nesting can help identify malicious files.

Suggested commands to analyze EML files for deep nesting could include using Python scripts to parse EML files and count nested message/rfc822 parts, or using tools like grep and awk to inspect the raw EML content for repeated 'Content-Type: message/rfc822' headers.

  • Example command to count nested message/rfc822 parts in an EML file using grep:
  • grep -c 'Content-Type: message/rfc822' suspicious_email.eml
  • If the count approaches or exceeds 120, the file may trigger the vulnerability.
  • Alternatively, a Python script can be written to recursively parse the EML file and count nested message/rfc822 parts to detect potential exploit attempts.
Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-44844. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart