Ruby net-imap v0.4.24 安全更新总结 漏洞概述 本次更新修复了多个严重的安全漏洞,主要涉及 STARTTLS 剥离攻击、CRLF/命令/参数注入 以及 拒绝服务 (DoS) 攻击。 影响范围 受影响版本:v0.4.x 分支(仅接收关键安全修复,Ruby 3.3 EOL 后将不再支持)。 风险等级:高危。 具体风险: 中间人攻击:攻击者可导致 返回“成功”,但实际上并未启动 TLS 加密。 注入攻击:通过 参数、 参数、 参数以及 API 进行 CRLF 或命令注入。 拒绝服务:读取包含大量字符串字面量的响应时存在二次时间复杂度漏洞; 默认迭代次数过高。 修复方案 1. 修复 STARTTLS 剥离漏洞: 修复了 的漏洞,确保 TLS 正确启动。 2. 改进参数验证与注入防护: 修复了通过 参数进行的 CRLF/命令/参数注入。 修复了通过 参数传给 和 的注入。 修复了通过 参数传给 的注入。 修复了 中的 CRLF/命令注入。 注意: 仍不防御其他形式的参数注入,因其是低级别 API。 3. 缓解拒绝服务攻击: 修复了读取大响应时的二次时间复杂度问题。 为 认证添加了可配置的 计数。 将 的 默认值从 降低至 (32位有符号整数最大值),以防止恶意服务器耗尽资源。 4. 其他改进: 改进了内部 literal 发送性能。 继续支持 literals。 补充说明 重要提示: 和 在 为 String 时发送原始数据;在 为 Array 时,其 String 成员作为原始数据发送。 贡献者**:@Masamuneee, @nevan, @manunio