PT-2026-42699 · Npm+2 · @Libp2P/Gossipsub+1

CVE-2026-46679

·

Publicado

2026-05-21

·

Atualizado

2026-06-10

CVSS v3.1

7.5

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Nome do Software Vulnerável e Versões Afetadas libp2p versões anteriores a 15.0.23
Descrição Três omissões cooperativas no @libp2p/gossipsub permitem que um único peer não autenticado esgote o heap do Node.js de qualquer nó gossipsub que utilize as opções padrão, levando a um travamento por falta de memória (Out-Of-Memory - OOM). O problema decorre dos seguintes defeitos técnicos:
  1. A variável defaultDecodeRpcLimits.maxSubscriptions está definida como Infinity, o que significa que não há um limite de nível de decodificação para entradas de assinatura por RPC.
  2. A função handleReceivedSubscription() é ilimitada; cada string de tópico única cria uma nova entrada de Map e um objeto Set em this.topics sem um limite de contagem por peer.
  3. A função removePeer() não exclui Sets vazios de this.topics após a desconexão de um peer, fazendo com que a memória não seja recuperável durante a vida útil do processo.
Um invasor pode explorar isso enviando um frame LP de 4MB contendo centenas de milhares de entradas SUBSCRIBE de tópicos únicos. Isso resulta em um crescimento significativo do heap (amplificação de aproximadamente 22x) e bloqueia o event loop. Como o processamento de assinaturas carece de verificações de pontuação ou penalidades, um único peer pode derrubar um processo Node.js com limite de heap de 1,5GB usando aproximadamente 68MB de largura de banda total em cerca de 5 segundos a 100Mbps.
Recomendações Atualize para a versão 15.0.23. Como mitigação temporária, restrinja o uso do módulo @libp2p/gossipsub configurando opts.allowedTopics para limitar o crescimento de tópicos por invasor.

Exploit

Correção

DoS

Memory Leak

Resource Exhaustion

RCE

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-46679
GHSA-4F8R-922H-2VGV

Produtos afetados

@Libp2P/Gossipsub
Js-Libp2P