CVE-2023-6245 in Candid
Sumário
de VulDB • 02/06/2026
A biblioteca Candid causa uma negação de serviço (DoS) ao analisar um payload especialmente elaborado com o tipo de dados 'empty'. Por exemplo, se o payload for `record { * ; empty }` e a interface do canister esperar `record { * }`, o decodificador Rust candid trata 'empty' como um campo extra exigido pelo tipo. O problema com o tipo 'empty' é que a biblioteca Rust candid categoriza erroneamente 'empty' como um erro recuperável ao pular o campo, causando assim um loop de decodificação infinito.
Canisters que usam versões afetadas da biblioteca candid estão expostos a negação de serviço, fazendo com que a decodificação seja executada indefinidamente até que o canister falhe (trap) devido ao limite máximo de instruções por rodada de execução. A exposição repetida ao payload resultará em degradação do desempenho do canister. Nota: Canisters escritos em Motoko não são afetados.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.