Skip to main content

Mailpit CVE-2026-67448

| EUVDEUVD-2026-63668 MEDIUM
Improper Handling of URL Encoding (Hex Encoding) (CWE-177)
2026-08-20 GitHub_M GHSA-8r62-w5wh-fc5m
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Developer visits malicious web page
  2. Delivery
    Page opens WebSocket to localhost:8025/%61pi/events
  3. Exploit
    Percent-encoded path bypasses raw-URI origin check in middleware
  4. Execution
    Go ServeMux decodes %61→a, routes request to /api/events handler
  5. Persist
    WebSocket upgrader accepts all origins, handshake returns 101
  6. Impact
    Attacker receives live stream of email IDs, headers, subjects, and body snippets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization URL encoding handling
Exploitation Conditions

Exploitation requires all three of the following: (1) a Mailpit instance running version 1.29.0-1.30.5 without --ui-auth-file authentication - the default configuration; (2) the instance must be reachable from the victim's browser, which is satisfied by the default localhost binding when the victim is the developer running Mailpit; and (3) the victim must actively visit an attacker-controlled web page while Mailpit is running. No SMTP credentials, no ability to send or inject mail, and no interaction beyond page load are required on the attacker's side. Exploitation is prevented entirely by the --ui-auth-file flag (confirmed by vendor advisory). Exploitation is also structurally limited to read-only information disclosure - the attacker cannot modify mail, alter Mailpit state, or pivot to other systems. The attack targets developers, not end users or production environments, narrowing realistic exposure.

Impact

The CVSS 6.5 score (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) accurately reflects the attack surface: network-reachable and unauthenticated, but requiring the victim to visit an attacker-controlled page, with high confidentiality impact and no integrity or availability effects. Real-world risk is bounded by Mailpit's deployment profile - it is a developer-facing tool typically bound to localhost, so production PII is rarely at stake and the attack surface is limited to the developer's own machine during an active session. The GHSA advisory confirms a working proof of concept with measured reproduction, meaning the barrier to exploitation is low for anyone who knows the technique; however, no CISA KEV listing and no EPSS data were provided, so widespread automated exploitation is not confirmed. The most credible threat is a malicious npm dependency or phishing page visited while a developer has a Mailpit instance running locally. Instances protected by --ui-auth-file are explicitly immune, which substantially reduces effective exposure for teams that follow the authentication guidance.

Exploit ScenarioDerived

A developer runs Mailpit v1.29.0-1.30.5 locally in default configuration (no --ui-auth-file) and visits a malicious webpage - perhaps embedded in a compromised npm package's postinstall script or a phishing link. The page opens a JavaScript WebSocket to http://localhost:8025/%61pi/events; the raw-URI origin check is bypassed, Go's ServeMux routes the decoded path to /api/events, and the upgrader accepts the connection. For every email processed by Mailpit while the socket is open, the attacker receives the message ID, Message-Id header, sender, recipients, subject line, tags, and body snippet in real time. A working proof of concept demonstrating this full flow is documented in GHSA-8r62-w5wh-fc5m.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Cross-site WebSocket hijacking in Mailpit 1.29.0-1.30.5 exposes live email metadata to any website the developer visits, due to a percent-encoding bypass in the origin-check middleware. The origin guard inspects the raw RequestURI for an /api/ prefix, but Go's ServeMux routes on the percent-decoded path - so a request to /%61pi/events skips the guard and reaches the /api/events WebSocket handler, whose upgrader unconditionally accepts every origin. An attacker-controlled page can receive a live stream of message IDs, headers, subjects, and body snippets from a default, unauthenticated Mailpit instance; a working proof of concept is documented in GHSA-8r62-w5wh-fc5m, though no CISA KEV listing exists at time of analysis.

RemediationAI

Upgrade to Mailpit v1.30.6, which fixes the vulnerability by switching the origin middleware from r.RequestURI to r.URL.Path (the percent-decoded path) and injecting corsOriginAccessControl directly into websocket.Upgrader.CheckOrigin via the new SetCheckOriginFunc mechanism, so the check can no longer be bypassed by encoding. The fix commit is fbe5e006c3f1682b819df58b4a932d7a84920be9 and the release is at https://github.com/axllent/mailpit/releases/tag/v1.30.6. If an immediate upgrade is not feasible, enabling --ui-auth-file authentication is a confirmed compensating control that prevents exploitation entirely per the vendor advisory, at the cost of requiring credentials for all UI access. A secondary mitigation is ensuring Mailpit is not accessible from the browser while visiting untrusted sites - for example, stopping the service when not actively needed - though this requires developer discipline and is not a reliable control. Do not rely on browser CORS enforcement: WebSocket upgrade handshakes are not subject to Access-Control-Allow-Origin response-header checks once the 101 Switching Protocols response succeeds.

Affected VersionsENISA

mailpit 1.29.0, < 1.30.6

Affected Packages

go github.com/axllent/mailpit fix: 1.30.6
euvd mailpit_1_29_0 fix: 1.30.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Mailpit is a Go-based developer email testing tool (CPE cpe:2.3:a:axllent:mailpit:*:*:*:*:*:*:*:*, Go module github.com/axllent/mailpit) that accepts SMTP and exposes a web UI and WebSocket API for inspecting captured mail. CWE-177 (Improper Handling of URL Encoding) is the precise root cause: server/server.go gates the CORS origin check on strings.HasPrefix(r.RequestURI, "/api/"), reading the raw wire target, while net/http.ServeMux routes on the percent-decoded path. The string /%61pi/events does not begin with /api/, so the corsOriginAccessControl() call is skipped entirely. ServeMux then decodes %61 to a and dispatches to the /api/events WebSocket handler. The second half of the defect is in server/websockets/client.go, where websocket.Upgrader.CheckOrigin is hardcoded to return true, delegating to the origin check that was already bypassed. This is a regression: commit 6f1f4f3 (v1.28.2) fixed CVE-2026-22689 by removing CheckOrigin outright; commit a63bcd9 (v1.29.0) reintroduced it returning true and replaced the protection with the bypassable raw-prefix test.

Know when Mailpit gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Network-initiated browser attack requires no authentication but mandates victim page visit (UI:R); high confidentiality from email stream disclosure; no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Aug 20, 2026 - 22:04 EUVD

DescriptionCVE.org

Mailpit is an email testing tool and API for developers. From 1.29.0 until 1.30.6, Mailpit's server/server.go origin middleware checks the raw RequestURI for the /api/ prefix while Go's ServeMux routes using the percent-decoded URL path, and server/websockets/client.go configures websocket.Upgrader.CheckOrigin to return true. A malicious website can request /%61pi/events, skip corsOriginAccessControl(), reach the /api/events WebSocket handler, and receive live message IDs, Message-Id values, sender and recipient fields, subjects, tags, and body snippets from an unauthenticated default Mailpit instance after the user visits the site. This is a regression of the earlier WebSocket origin protection and does not affect deployments protected by --ui-auth-file. This issue is fixed in version 1.30.6.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche developer-only email testing tool, not production infrastructure
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Moderate

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy