漏洞总结 漏洞概述 该提交修复了 Plivo V2 webhook 验证逻辑中重放密钥(replay key)生成不稳定的问题。之前的实现可能将包含不同查询参数(如 与 )的请求视为不同的请求,导致无法正确识别同一会话下的变体请求,或存在重放攻击风险。修复后的逻辑确保查询参数不同的 V2 变体被视为相同的已验证请求。 影响范围 模块 涉及文件: (核心逻辑), (测试用例) 修复方案 1. 引入安全密钥生成函数:新增 函数,使用 算法,仅基于基础 URL( ,不含查询参数)和 nonce 生成重放密钥。 2. 更新验证逻辑:在 函数中调用新函数生成 ,用于后续的 检查。 3. 增加测试覆盖:添加测试用例 ,验证即使 URL 查询参数不同( vs ),生成的 也应一致。 关键代码块 1. 测试代码 (webhook-security.test.ts) `` ${verificationUrl}?flow=answer&callId=abc ${verificationUrl}?flow=getinput&callId=abc`, method: "POST