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.2, eml_parser.routing.noparenthesis in eml_parser/routing.py removes parenthesized CFWS comments from Received: headers with a regex-based fix-point loop whose running time is quadratic in the nesting depth. A single Received: header with 5,000 nested parentheses causes approximately 1.3 seconds of CPU saturation per parsed message, and doubling the nesting depth approximately quadruples the running time. An attacker can submit relatively small EML files that consume multiple seconds of processing time, causing worker latency, queue backpressure, and possible service-level outages in synchronous gateways, sandboxes, and real-time triage pipelines. This issue is fixed in version 3.0.2.
Published: 2026-08-25
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

eml_parser is a Python module that parses EML files and reports metadata. In versions prior to 3.0.2 the function that removes parenthesized comments from Received headers uses a regex‑based fix‑point loop whose execution time rises quadratically with the nesting depth of parentheses. An attacker can create an EML file containing a single Received header with thousands of nested parentheses. Parsing such a message consumes several seconds of CPU time, inducing latency for the worker, back‑pressure on queues, and possibly service disruption for email gateways, sandboxes, or triage pipelines. The weakness is an example of CWE‑1124 and CWE‑770.

Affected Systems

The affected product is the eml_parser Python module provided by GOVCERT‑LU. All releases prior to 3.0.2 are vulnerable, including v3.0.1 and earlier. Version 3.0.2, released on GitHub, includes a fix that removes the vulnerable loop and restricts the processing of Received headers.

Risk and Exploitability

The CVSS score for this vulnerability is 7.5, reflecting a high impact Denial of Service when the exploit is successful. The EPSS score is currently not available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is an attacker sending a crafted EML file to any application that parses it using this module. No authentication or elevated privileges are required; a single file can trigger the DoS. Exploitation is straightforward because the faulty parsing code is executed automatically on every message that contains a Received header.

Generated by OpenCVE AI on August 25, 2026 at 20:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to eml_parser version 3.0.2 or later.
  • If an upgrade is not possible, filter incoming EML files to reject Received headers containing more than a modest number of nested parentheses (for example, limit the depth to 20) before invoking the parser.
  • Apply input validation or resource limits on the worker that uses the module to protect against excessive CPU consumption, such as setting a maximum CPU budget or implementing a per-request timeout.

Generated by OpenCVE AI on August 25, 2026 at 20:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-g7gc-gmgp-wgqg eml_parser vulnerable to DoS via deeply nested parens in Received headers
History

Tue, 25 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
First Time appeared Govcert-lu
Govcert-lu eml Parser
Vendors & Products Govcert-lu
Govcert-lu eml Parser

Tue, 25 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
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.2, eml_parser.routing.noparenthesis in eml_parser/routing.py removes parenthesized CFWS comments from Received: headers with a regex-based fix-point loop whose running time is quadratic in the nesting depth. A single Received: header with 5,000 nested parentheses causes approximately 1.3 seconds of CPU saturation per parsed message, and doubling the nesting depth approximately quadruples the running time. An attacker can submit relatively small EML files that consume multiple seconds of processing time, causing worker latency, queue backpressure, and possible service-level outages in synchronous gateways, sandboxes, and real-time triage pipelines. This issue is fixed in version 3.0.2.
Title eml_parser: DoS via deeply nested parens in Received headers
Weaknesses CWE-1124
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Govcert-lu Eml Parser
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T18:26:54.978Z

Reserved: 2026-06-16T23:31:22.446Z

Link: CVE-2026-55620

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-25T19:16:50.627

Modified: 2026-08-25T19:16:50.627

Link: CVE-2026-55620

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-25T20:15:04Z

Weaknesses
  • CWE-1124

    Excessively Deep Nesting

  • CWE-770

    Allocation of Resources Without Limits or Throttling