CVE-2026-41395OpenClaw 在 2026.3.28 之前的版本中存在一个 webhook 重放漏洞。该漏洞源于 Plivo V3 签名验证机制在处理请求时存在逻辑缺陷。具体而言,系统虽然在签名验证时对查询参数的顺序进行了规范化处理,但在进行重放检测时却对原始 URL 进行哈希计算。这种不一致性允许攻击者在获取到有效的签名 webhook 请求后,通过重新排列查询参数的顺序来绕过重放缓存的检测机制,从而触发重复的语音呼叫处理流程。
该漏洞的技术核心在于签名验证逻辑与重放防护逻辑之间的不一致性。在 OpenClaw 集成 Plivo V3 进行签名验证时,为了确保签名校验的正确性,系统会对 URL 中的查询参数进行规范化处理(例如按字母顺序排序),随后计算哈希值并与请求头中的签名进行比对。然而,在实施重放攻击防护时,系统却错误地对未经处理的原始 URL 字符串进行哈希运算,并将结果存储在缓存中用于查重。当攻击者截获到一个合法的、已签名的 Webhook 请求时,由于原始 URL 的哈希值已被缓存,直接重放该请求会被拦截。但是,攻击者可以利用 URL 参数顺序的特性,在不改变参数键值对的前提下,调整其在 URL 中的排列顺序。由于签名验证模块会对参数进行重新排序,因此篡改顺序后的请求依然能够通过签名校验。与此同时,重放防护模块计算的是新的、参数顺序改变后的 URL 哈希值,该值并不存在于缓存中,从而导致防护失效。这使得攻击者能够利用同一个有效的签名凭证,无限次地触发后端业务逻辑(如语音呼叫),造成资源滥用或业务损失。