CVE-2025-36360CVE-2025-36360是IBM UrbanCode Deploy和IBM DevOps Deploy中的一个中等严重性安全漏洞。该漏洞源于http-session客户端IP绑定机制中的竞态条件问题。攻击者可能在会话从旧IP地址迁移到新IP地址的短暂时间窗口内,利用该会话进行未授权访问。
漏洞影响范围包括IBM UrbanCode Deploy 7.1至7.1.2.27版本、7.2至7.2.3.20版本、7.3至7.3.2.15版本,以及IBM DevOps Deploy 8.0至8.0.1.10版本和8.1至8.1.2.3版本。
在典型的网络环境中,用户可能通过不同的网络路径访问系统,例如从公司网络切换到家庭网络,或使用VPN重新连接。这种情况下,用户的IP地址会发生变化。系统本应立即使旧会话失效并要求重新认证,但由于存在竞态条件,会话可能在IP变更后的一段时间内仍然有效。
攻击者需要具备以下条件才能利用此漏洞:首先,需要获取一个有效的会话令牌;其次,需要能够从与原始会话不同的IP地址发起请求;最后,需要在会话完全失效前的短暂时间窗口内发起请求。虽然这些条件看似严格,但在某些攻击场景中是可以实现的,特别是在攻击者能够控制或监控目标网络的情况下。
该漏洞的CVSS评分为5.0,属于中等严重性,主要因为其利用复杂度较高(AC:H),需要低权限(PR:L)但无需用户交互(UI:N)。尽管如此,该漏洞仍可能导致敏感数据泄露或未授权操作,应引起高度重视并及时修复。
该漏洞的核心问题在于IBM UrbanCode Deploy和IBM DevOps Deploy的会话管理机制中,客户端IP绑定验证存在时间差。当用户IP地址发生变化时,系统需要在会话表中更新IP绑定信息并使旧会话失效。然而,由于代码实现中的竞态条件,这两个操作之间存在一个短暂的时间窗口。
在正常情况下,系统应该在检测到IP变更时立即执行以下操作:
1. 使当前会话失效
2. 创建新的会话
3. 绑定新的IP地址
但由于竞态条件的存在,步骤1和步骤2/3之间可能存在执行间隙。在这个间隙期间,如果攻击者能够获取有效的会话令牌(通过中间人攻击、会话劫持或其他方式),并从新的IP地址发起请求,系统可能会错误地接受这个请求,因为旧的会话验证逻辑尚未完全失效。
技术实现上,这种竞态条件通常发生在以下代码路径中:
- 会话验证中间件检查IP绑定
- IP地址变更检测逻辑
- 会话失效和重建逻辑
这些操作之间的时序问题导致攻击者可以在会话完全失效前使用该会话从新IP发起请求。攻击者可能通过以下方式利用此漏洞:
1. 获取有效会话令牌
2. 等待或诱导用户IP变更(如用户断开重连)
3. 在时间窗口内从新IP发起请求
4. 执行未授权操作或获取敏感信息
该漏洞的利用需要精确的时序控制,但在网络条件不稳定或用户频繁切换网络的环境下,成功率会显著提高。