CVE-2026-34067Nimiq的Rust实现组件nimiq-transaction在1.3.0之前的版本中存在漏洞。`HistoryTreeProof::verify`函数在处理畸形包含证明时,因长度不匹配导致断言失败并发生Panic。由于该证明源自不可信P2P响应,攻击者可利用恶意节点触发崩溃,造成拒绝服务。
该漏洞源于Nimiq Rust实现中`HistoryTreeProof::verify`函数的不安全断言机制。代码中使用了`assert_eq!(history.len(), positions.len())`宏来校验输入参数的长度一致性。在Rust中,断言失败会导致线程Panic,进而可能终止整个进程。由于证明对象直接派生自P2P网络的`ResponseTransactionsProof.proof`响应,且来自不受信任的对等节点,攻击者可以完全控制输入数据。攻击者只需构造一个`history`与`positions`数组长度不匹配的恶意包含证明数据包发送给目标节点。当目标节点尝试验证该证明时,断言条件不满足,触发程序崩溃。这种逻辑缺陷允许攻击者无需认证即可导致目标节点服务中断。