CVE-2026-40094Nimiq Blockchain的Rust实现(core-rs-albatross)1.3.0及之前版本存在安全漏洞。该漏洞源于network-libp2p发现机制接受来自不可信对等方的已签名PeerContact更新,且未强制验证地址列表非空。攻击者可利用空地址列表构造恶意PeerContact,导致节点在调用get_address_book(RPC/Web客户端)时触发panic并崩溃,从而造成拒绝服务。
该漏洞位于Nimiq Rust实现的`network-libp2p`组件中。虽然`PeerContact`结构体在定义时允许地址列表为空,但`PeerContactBook::known_peers`方法在构建地址簿时,使用`addresses.first().expect("every peer should have at least one address")`强行断言列表非空。攻击者利用此逻辑缺陷,向目标节点发送一个经过签名但`addresses`字段为空的`PeerContact`。目标节点会将此恶意记录存储在通讯簿中。一旦管理员或用户通过RPC或Web客户端调用`get_address_book`接口,程序尝试读取第一个地址时因列表为空而触发`expect`断言失败,导致发生panic。根据Panic设置,这会导致节点进程或RPC任务崩溃,中断服务可用性。