CVE-2026-84697 Overview
CVE-2026-84697 is a server-side request forgery (SSRF) vulnerability in Mailpit, an email testing tool for developers. The IsInternalIP deny list function fails to block the Azure WireServer address 168.63.129.16 and the RFC 2765/6145 IPv4-translated IPv6 prefix. Attackers can supply hostnames resolving to these addresses in message content to reach the link check API and proxy endpoint, allowing access to internal resources. The flaw is categorized under CWE-918: Server-Side Request Forgery.
Critical Impact
Unauthenticated network attackers can pivot through Mailpit to reach Azure metadata services and internal IPv6-mapped destinations that should be restricted.
Affected Products
- Mailpit (open-source email testing tool by axllent)
- Mailpit versions prior to the fix commit a02821bf3424da9196e156c422370f4868a1dff2
- Deployments running Mailpit in cloud environments, particularly Microsoft Azure
Discovery Timeline
- 2026-09-02 - CVE-2026-84697 published to NVD
- 2026-09-02 - Last updated in NVD database
Technical Details for CVE-2026-84697
Vulnerability Analysis
Mailpit exposes a link check API and a proxy endpoint used to preview and validate URLs contained in captured messages. To prevent SSRF, Mailpit implements an IsInternalIP function in internal/tools/net.go that acts as a deny list against private and loopback address ranges. The deny list is incomplete. It omits the Azure Instance Metadata proxy address 168.63.129.16, known as WireServer, which provisions guest agent traffic on Azure virtual machines. It also omits the RFC 2765/6145 IPv4-translated IPv6 prefix (::ffff:0:0:0/96 style translation), permitting IPv6-encoded requests to internal IPv4 destinations.
Root Cause
The root cause is an incomplete address filter in the IsInternalIP function. The deny list enumerates RFC 1918 ranges and loopback space but does not account for cloud-specific metadata endpoints or IPv4-in-IPv6 representations. Attackers who control hostnames can resolve them to these unfiltered addresses at DNS lookup time.
Attack Vector
An unauthenticated attacker sends an email to a Mailpit instance containing a link to an attacker-controlled hostname. When an operator or automated component triggers the link check API or proxy endpoint, Mailpit resolves the hostname and issues an outbound HTTP request. Because 168.63.129.16 and IPv4-translated IPv6 addresses bypass IsInternalIP, the request reaches Azure WireServer or other internal destinations, returning response content through the Mailpit proxy.
Technical details and the corrective patch are documented in the Mailpit commit fixing the deny list and the VulnCheck Mailpit SSRF Advisory.
Detection Methods for CVE-2026-84697
Indicators of Compromise
- Outbound HTTP requests from Mailpit hosts to 168.63.129.16 on ports 80 or 32526
- DNS queries from Mailpit resolving external hostnames to reserved or private IPv4 addresses
- Mailpit access logs showing repeated calls to the link check API or proxy endpoint referencing external domains
- IPv6 requests targeting ::ffff:* translated addresses originating from the Mailpit process
Detection Strategies
- Inspect Mailpit application logs for proxy or link check requests followed by outbound connections to metadata IP ranges
- Correlate DNS resolution telemetry with subsequent outbound connections from the Mailpit process
- Monitor egress firewall logs for traffic to 168.63.129.16 from workloads that should not access WireServer directly
Monitoring Recommendations
- Enable egress network flow logging on all cloud instances hosting Mailpit
- Alert on any process-to-metadata-endpoint communication where the process is not an approved cloud agent
- Ingest Mailpit application logs into a centralized data lake and build detections for high-frequency proxy endpoint use
How to Mitigate CVE-2026-84697
Immediate Actions Required
- Upgrade Mailpit to a release that includes commit a02821bf3424da9196e156c422370f4868a1dff2 or later
- Restrict outbound network access from Mailpit hosts using host firewalls or cloud security groups
- Block egress to 168.63.129.16 from Mailpit containers and virtual machines where WireServer access is not required
- Place Mailpit behind authentication and expose it only to trusted networks
Patch Information
The maintainer addressed the vulnerability by extending the IsInternalIP deny list to include 168.63.129.16 and the RFC 2765/6145 IPv4-translated IPv6 prefix. Refer to the Mailpit repository and the fix commit for release details and to identify the first patched version.
Workarounds
- Disable the link check API and proxy endpoint in Mailpit configuration if not required
- Deploy Mailpit inside an isolated network segment with no route to cloud metadata services
- Enforce an egress allow list that limits Mailpit to explicitly approved destinations
- Terminate Mailpit resolution of untrusted hostnames by placing an outbound HTTP proxy in front of the service
# Example: block Azure WireServer egress from a Mailpit host using iptables
iptables -A OUTPUT -d 168.63.129.16 -j DROP
iptables -A OUTPUT -d ::ffff:0:0/96 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

