从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 在Bitcoin Core v25.0之前,攻击者可以通过触发blocktxn消息处理逻辑中的断言来远程崩溃Bitcoin Core节点。 - 这个问题被归类为“High”严重性。 2. 漏洞细节: - 当接收一个块公告时,Bitcoin Core试图使用自己的内存池以及可用的其他交易来重构宣布的块。 - 如果重构失败,因为它缺少交易,它将请求它们从宣布的对等体通过getblocktxn消息。 - blocktxn消息应包含请求的交易。 - 紧凑块协议使用缩短的交易标识符来减少带宽。这些短id是6字节大小,导致在块重构时发生小概率的碰撞(即交易A具有与交易B相同的短id)。 - 碰撞将被检测为从重构的交易集计算的默克尔根与块公告中的默克尔根不匹配。应该处理碰撞,因为它们可能偶然发生,因此它们通过请求完整的块来处理。 3. 漏洞影响: - Bitcoin Core将在接收到新的紧凑块时创建一个PartiallyDownloadedBlock实例。 - 如果缺少交易,该实例将被保留,直到对应的blocktxn消息被处理。 - 在上述描述的碰撞情况下,完整的块被请求,但PartiallyDownloadedBlock实例及其与底层块请求相关的其他状态保持不变。 - 这为同一块的第二个blocktxn消息提供了空间,触发FillBlock函数再次被调用。这违反了文档中记录的assert语句,即FillBlock函数只能被调用一次,导致节点崩溃。 4. 漏洞发现和修复: - 2022年10月5日,Niklas Gögge报告了这个问题。 - 2023年1月24日,包含修复的PR #26898合并。 - 2023年5月25日,Bitcoin Core 25.0发布包含修复。 - 2024年10月9日,进行了公共披露。 5. 漏洞披露: - Disclosure of CVE-2024-35202在2024年10月8日发布。 6. 推荐: - Bitcoin Core 28.0已发布。 这些信息提供了关于CVE-2024-35202漏洞的详细描述,包括其影响、修复过程和披露时间。