Plataforma
rust
Componente
libp2p-gossipsub
Corrigido em
0.49.5
0.49.4
A vulnerabilidade CVE-2026-34219 descreve um panic remotamente acionável na implementação Rust do libp2p Gossipsub, especificamente no tratamento de expiração backoff. Um peer malicioso pode enviar uma mensagem PRUNE com um valor backoff manipulado, levando a um overflow aritmético durante o cálculo do tempo de espera, resultando em um DoS. Esta falha afeta versões anteriores à 0.49.4 do libp2p-gossipsub. A vulnerabilidade foi corrigida na versão 0.49.4.
A implementação do Gossipsub em Rust libp2p contém um pânico remotamente explorável no tratamento de expiração do 'backoff'. Um atacante pode enviar uma mensagem de controle PRUNE especialmente elaborada com um valor de 'backoff' controlado pelo atacante, próximo do máximo permitido. Este valor é aceito e armazenado como um Instant próximo do limite superior representável. Posteriormente, durante um 'heartbeat', a implementação realiza aritmética Instant + Duration não verificada (backoff_time + slack), o que pode causar um estouro e um pânico. Este pânico pode interromper o funcionamento da rede, potencialmente causando negação de serviço ou comportamento imprevisível em nós que utilizam libp2p. A gravidade do impacto depende da criticidade da rede e da tolerância a falhas dos nós.
Um atacante que controla as mensagens PRUNE em uma rede libp2p pode explorar esta vulnerabilidade. Isso requer a capacidade de enviar mensagens de controle para os nós da rede. A exploração é relativamente simples, envolvendo o envio de uma mensagem PRUNE com um valor de 'backoff' cuidadosamente escolhido. A eficácia da exploração depende da configuração da rede e da capacidade do atacante de influenciar o tráfego de mensagens. A vulnerabilidade é considerada remotamente explorável porque a mensagem PRUNE pode ser enviada através da rede.
Applications and services that rely on the libp2p-gossipsub library for peer discovery and message routing are at risk. This includes decentralized applications (dApps), blockchain networks, and any system utilizing the libp2p networking stack. Specifically, systems with limited input validation on network messages are more vulnerable.
• rust: Examine application logs for panic messages containing overflow when adding duration to instant.
println!("Checking for panic messages: overflow when adding duration to instant");• linux / server: Monitor system logs (journalctl) for processes using libp2p-gossipsub that crash with the specified error.
journalctl -u your_libp2p_app -g "overflow when adding duration to instant"• generic web: Monitor network traffic for unusual patterns of PRUNE messages with extremely large backoff values. Use tools like Wireshark to inspect packet contents.
disclosure
Status do Exploit
EPSS
0.05% (percentil 17%)
CISA SSVC
Vetor CVSS
A solução recomendada é atualizar para a versão 0.49.4 do libp2p ou superior. Esta versão corrige a vulnerabilidade introduzindo uma verificação de estouro antes de realizar a operação Instant + Duration. Enquanto isso, como medida temporária, recomenda-se monitorar de perto os nós libp2p em busca de pânicos inesperados e limitar a exposição dos nós a redes não confiáveis. Os operadores de rede que utilizam libp2p devem revisar sua configuração e garantir que os nós estejam devidamente isolados e protegidos contra mensagens maliciosas. A atualização é a forma mais eficaz de mitigar o risco.
Atualize a biblioteca rust-libp2p para a versão 0.49.4 ou superior. Esta versão corrige a vulnerabilidade de estouro aritmético no tratamento de expiração de backoff em Gossipsub. A atualização previne possíveis panics remotos causados por mensagens PRUNE manipuladas.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
Gossipsub é um protocolo de fofoca usado em redes peer-to-peer para distribuir informações de forma eficiente e robusta.
A versão 0.49.4 corrige a vulnerabilidade de pânico no tratamento do 'backoff', prevenindo possíveis negações de serviço e comportamentos imprevisíveis.
Monitore seus nós libp2p em busca de pânicos inesperados e limite a exposição a redes não confiáveis como medida temporária.
Se você estiver usando uma versão do libp2p anterior à 0.49.4, você é vulnerável. Verifique a versão instalada usando o comando cargo version ou similar.
Consulte o site do Rust libp2p ou as bases de dados de vulnerabilidades como CVE para obter informações sobre outras vulnerabilidades conhecidas.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.
Envie seu arquivo Cargo.lock e descubra na hora se você está afetado.