CVE-2026-34062nimiq-libp2p是一个基于libp2p的Nimiq网络实现。在1.3.0版本之前,该组件存在安全漏洞。攻击者可以利用`MessageCodec`中的`read_to_end()`调用缺陷,仅发送部分帧数据并保持子流连接不释放。此外,由于配置中将最大并发流数设置为1000,导致节点暴露了过大的停滞时隙预算,攻击者可利用此耗尽节点资源。
该漏洞源于nimiq-libp2p在处理入站子流时的逻辑缺陷。在受影响版本中,`MessageCodec::read_request`和`read_response`方法调用了`read_to_end()`,这意味着该方法会尝试读取直到流结束。恶意远程节点可以故意发送不完整的帧数据,导致流一直处于等待读取完成的状态,从而无法被回收或关闭。
同时,`Behaviour::new`初始化时设置了`with_max_concurrent_streams(1000)`,允许同时存在1000个并发流。这一配置远高于库的默认值,极大地扩大了攻击面。攻击者无需认证即可通过网络发起攻击,利用部分帧填充节点的并发流配额,导致合法请求无法处理,最终引发拒绝服务。