漏洞总结 漏洞概述 该漏洞涉及 Ruby 的 库(用于 SCRAM 认证协议)中的迭代次数限制问题。攻击者可以通过发送极小的迭代次数(如 1 次)来绕过安全限制,导致服务器在处理认证时消耗极少的计算资源,从而可能引发拒绝服务(DoS)攻击或降低认证安全性。 影响范围 使用 库进行 SCRAM 认证的应用程序 特别是依赖默认迭代次数(4096)进行密码哈希计算的服务 未正确验证客户端发送的迭代次数参数的场景 修复方案 1. 添加最小迭代次数验证:在 类中强制要求最小迭代次数为 4096 2. 添加最大迭代次数验证:限制最大迭代次数为 1,000,000,防止资源耗尽 3. 服务器端验证:确保服务器端对客户端发送的迭代次数进行严格验证 POC 代码