漏洞概述 该漏洞涉及Zalo Webhook的replay deduplication机制。具体来说,漏洞允许攻击者通过重用消息ID在不同聊天或发送者之间进行重放攻击,导致部分缺失的payload被硬编码处理。 影响范围 Zalo Webhook:所有使用Zalo Webhook的应用和服务。 消息ID重用:攻击者可以重用消息ID,导致消息被错误地处理或忽略。 部分缺失的payload:当payload部分缺失时,系统可能会硬编码处理,导致数据不一致或错误。 修复方案 1. Scope Webhook Replay Deduplication: - 通过聊天和发送者来限制消息ID的重用,防止不同聊天或发送者之间的消息ID冲突。 - 代码示例: 2. Harden Replay Metadata Reads: - 在处理部分缺失的payload时,增加对metadata的验证,确保数据的完整性和一致性。 - 代码示例: 3. Add Zalo Replay Scope Fix Entry: - 在CHANGELOG.md中添加修复条目,记录此次修复的具体内容。 - 代码示例: POC代码 以下是与漏洞相关的POC代码示例: 总结 此次修复通过限制消息ID的重用范围和增强metadata的验证,有效防止了Zalo Webhook的重放攻击,确保了消息处理的准确性和安全性。