漏洞概述 在 函数中,存在一个检查字节验证的越界读取漏洞。具体来说, 测试会无条件地读取 到 ,因此解密后的缓冲区必须至少包含七个字节。预解密大小检查强制 ,这仅在 时产生所需的七个字节。对于具有较小块大小的 KEK 密码, 可以小到 ,导致 读取超出 大小的分配。 影响范围 受影响组件: 中的 函数。 影响条件:当使用具有较小块大小的 KEK 密码时, 可以小到 ,导致越界读取。 修复方案 1. 早期健全性检查:拒绝 的情况,因为所有适用于 CMS 密码/接收者信息密钥包装的块密码都有至少 8 字节的块大小(DES/3DES = 8,AES = 16)。因此,只有那些不会被视为有效 KEK 选择的密码才会被禁止,现有的 检查保证了七个字节的下界,用于 测试。 2. 代码修改: - 在 函数中,增加对 的早期检查,确保 。 - 修改 的检查逻辑,确保 且 。 代码修改 总结 该漏洞通过早期对 的检查和对 的更严格验证进行了修复,确保了 测试的安全性,防止了越界读取。