漏洞总结 漏洞概述 该提交修复了 Bouncy Castle 库中 类的一个逻辑缺陷。在验证数字签名时,如果传入的签名序列( )为空,代码会直接返回 (即验证通过),而没有进行任何实际的签名校验。这可能导致攻击者伪造签名通过验证。 影响范围 受影响组件: 受影响方法: 风险场景:任何依赖此方法进行签名验证的场景,若攻击者能控制输入数据为空或构造特定空序列,可能绕过签名验证。 修复方案 在 方法中增加对 空序列的检查: 1. 新增布尔变量 初始化为 。 2. 遍历 中的每个签名元素。 3. 对每个非空签名元素执行实际验证(调用 方法)。 4. 若任一签名验证失败,则设置 。 5. 最终返回 —— 即:如果所有签名都失败,或没有任何签名被检查过(空序列),则验证失败。 POC/利用代码(来自测试用例) 以下为新增的测试代码,用于验证修复后空签名序列应被拒绝: > 注:实际利用需结合具体业务场景构造含空签名序列的 PKI 消息。上述测试代码展示了如何验证修复后的行为——空签名序列应导致验证失败。