Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-84697

CVE-2026-84697: Mailpit SSRF Vulnerability

CVE-2026-84697 is a server-side request forgery flaw in Mailpit that fails to block Azure WireServer and IPv4-translated IPv6 addresses, allowing attackers to access internal resources. This post covers technical details, impact, and mitigation.

Published:

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
bash
# 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.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.