CVE-2026-67448: Axllent Mailpit WebSocket origin check bypass via percent-encoded path

CVE-2026-67448 · Severity: medium · CVSS 6.5 · Published 2026-08-20

Mailpit is a mail testing tool used by developers to capture and view emails during development. An attacker can trick a developer into visiting a malicious website while Mailpit is running, then use a URL encoding bypass to connect a WebSocket from that malicious site directly to Mailpit and read email metadata—including sender, recipient, subject line, and message preview—without authentication. This is a regression of a previously patched vulnerability.

Technologies: Axllent Mailpit, github.com/axllent/mailpit (Go). Vendors: Axllent, Go.

Quick answers

Is CVE-2026-67448 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-67448 being exploited in the wild.
How severe is CVE-2026-67448?
Medium severity, with a CVSS score of 6.5, published 20 August 2026.
Which products and versions are affected?
Axllent Mailpit 1.29.0 through 1.30.5; github.com/axllent/mailpit (Go) >= 1.29.0, <= 1.30.5, SEMVER:introduced=1.29.0,fixed=1.30.6.
Is there a fix for CVE-2026-67448?
Yes. github.com/axllent/mailpit (Go): upgrade to 1.30.6 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-67448 attacked?
It is attacked over the network.
Am I affected by CVE-2026-67448?
Check whether you run Axllent Mailpit or github.com/axllent/mailpit (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/axllent/mailpit (Go): upgrade to 1.30.6 or later
    go get github.com/axllent/mailpit@v1.30.6

Technical details

The vulnerability is an origin validation bypass caused by a mismatch between security check logic and routing logic. Mailpit's server validates WebSocket origin requests by checking if the raw request URI starts with "/api/", but Go's ServeMux routes based on the percent-decoded path. By sending a request to /%61pi/events (where %61 decodes to "a"), the origin check is skipped entirely (since "/%61pi/events" does not start with "/api/"), but the router decodes it to /api/events and routes to the WebSocket handler. The WebSocket upgrader unconditionally accepts all origins. This affects versions 1.29.0 through 1.30.5 when running without UI authentication (the default). An unauthenticated, cross-origin attacker can establish a WebSocket connection and stream sensitive email data in real-time. The fix is to perform origin checks against the decoded URL path instead of the raw request URI, and ideally restore proper origin checking in the WebSocket upgrader itself.

Affected products

  • axllent Mailpit 1.29.0 through 1.30.5

Identifiers

  • CVE-2026-67448
  • GHSA-8r62-w5wh-fc5m
  • GO-2026-6271

Timeline

  • 2026-08-20: disclosed: Published to GitHub Advisory Database
  • 2026-08-20: patched: Version 1.30.6 released with fix
  • 2026-01-10: other: Original CVE-2026-22689 fixed by removing CheckOrigin (commit 6f1f4f3, v1.28.2)
  • 2026-01-31: other: Regression introduced in v1.29.0 (commit a63bcd9) when reintroducing CheckOrigin and replacing protection with bypassable raw-prefix test

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.