CVE-2024-7884 in ic-cdkinformação

Sumário

de VulDB • 26/05/2026

Quando um método de canister é chamado via ic_cdk::call*, um novo Future CallFuture é criado e pode ser aguardado pelo chamador para obter o resultado da execução. Internamente, o estado do Future é rastreado e armazenado em uma struct chamada CallFutureState. Um bug na implementação do polling do CallFuture permite que múltiplas referências sejam mantidas para esse estado interno e nem todas as referências foram descartadas antes que o Future fosse resolvido. Como existem referências não contabilizadas mantidas, uma cópia do estado interno acabou sendo persistida no heap do canister, causando assim um vazamento de memória.

Impacto: Canisters construídos em Rust com ic_cdk e ic_cdk_timers são afetados. Se esses canisters chamarem um método de canister, usarem timers ou heartbeat, eles provavelmente vazaram uma pequena quantidade de memória em cada uma dessas operações. No pior caso, isso poderia levar ao esgotamento da memória heap, acionado por um atacante. Canisters baseados em Motoko não são afetados pelo bug.

Patches: O patch foi backported para todas as versões menores entre >= 0.8.0 e <= 0.15.0. As versões corrigidas disponíveis são 0.8.2, 0.9.3, 0.10.1, 0.11.6, 0.12.2, 0.13.5, 0.14.1, 0.15.1 e suas versões anteriores foram removidas (yanked).

Workarounds: Não há workarounds conhecidos no momento. Recomenda-se que os desenvolvedores atualizem seus canisters o mais rápido possível para a versão corrigida mais recente disponível do ic_cdk para evitar o esgotamento da memória heap Wasm. A atualização dos canisters (sem atualizar o `ic_cdk`) também libera a memória vazada, mas é apenas uma solução temporária.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsável

Dfinity

Reservar

16/08/2024

Divulgação

05/09/2024

Moderação

aceite

Entrada

VDB-276647

CPE

pronto

EPSS

0.00693

KEV

não

Atividades

muito baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!