CVE-2024-7884 in ic-cdkinformation

Résumé

par VulDB • 06/06/2026

Lorsqu'une méthode de canister est appelée via `ic_cdk::call*`, un nouveau Future `CallFuture` est créé et peut être attendu par l'appelant pour obtenir le résultat de l'exécution. En interne, l'état du Future est suivi et stocké dans une structure nommée `CallFutureState`. Un bug dans l'implémentation du polling (sondage) de `CallFuture` permet la conservation de plusieurs références vers cet état interne, et toutes les références ne sont pas supprimées avant que le Future ne soit résolu. Étant donné qu'il existe des références non comptabilisées conservées en mémoire, une copie de l'état interne finit par être persistée dans le tas (heap) du canister, provoquant ainsi une fuite de mémoire.

**Impact :** Les canisters développés en Rust avec `ic_cdk` et `ic_cdk_timers` sont concernés. Si ces canisters appellent une méthode d'un autre canister, utilisent des minuteries ou un heartbeat, ils risquent de fuiter une petite quantité de mémoire à chaque opération de ce type. Dans le pire des cas, cela pourrait entraîner une épuisement de la mémoire heap déclenché par un attaquant. Les canisters basés sur Motoko ne sont pas affectés par ce bug.

**Correctifs :** Le correctif a été rétroporté (backported) à toutes les versions mineures comprises entre >= 0.8.0 et <= 0.15.0. Les versions corrigées disponibles sont 0.8.2, 0.9.3, 0.10.1, 0.11.6, 0.12.2, 0.13.5, 0.14.1 et 0.15.1 ; leurs versions précédentes ont été retirées (yanked).

**Solutions de contournement :** Il n'existe actuellement aucune solution de contournement connue. Les développeurs sont invités à mettre à niveau leur canister dès que possible vers la dernière version corrigée disponible d'`ic_cdk` afin d'éviter l'épuisement de la mémoire Wasm heap. La mise à jour des canisters (sans mettre à jour `ic_cdk`) libère également la mémoire fuitée, mais il s'agit uniquement d'une solution temporaire.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Dfinity

Réserver

16/08/2024

Divulgation

05/09/2024

Modérer

accepté

Entrée

VDB-276647

CPE

prêt

EPSS

0.00693

KEV

non

Activités

très faible

Sources

Do you know our Splunk app?

Download it now for free!