Faille de sept ans dans l'appli Ledger pour Zilliqa

iEXExchanger
Faille de sept ans dans l'appli Ledger pour Zilliqa

Pendant sept ans, l'appli Ledger pour Zilliqa a généré des signatures prévisibles, permettant de reconstituer une clé privée à partir de données publiques. Zilliqa a suspendu les transferts natifs.

Un portefeuille matériel est censé être l'endroit le plus sûr pour une clé privée. Pendant sept ans, une application très utilisée au-dessus des appareils Ledger a discrètement sapé cette promesse.

La faille se logeait dans l'application Ledger pour Zilliqa, disponible depuis 2019 pour signer les transactions natives, non compatibles EVM. À chaque signature, le programme prenait les mauvais 32 octets de données : il conservait huit octets de remplissage technique au lieu de huit octets de véritable aléa. Cette valeur aléatoire s'appelle un nonce, censé être imprévisible à chaque fois. Quand ce n'est pas le cas, il suffit de comparer plusieurs signatures d'un même compte pour reconstruire mathématiquement la clé privée — sans malware, sans accès à l'appareil, juste avec des données publiques déjà présentes sur la blockchain. Selon Zilliqa, environ cinq signatures concernées suffisent, et le calcul prend quelques secondes sur un ordinateur ordinaire.

Le 19 juillet, la plateforme KuCoin a repéré une activité suspecte sur le réseau et lancé une enquête. La cause a été confirmée deux jours plus tard, et Zilliqa a rendu les détails publics le 22 juillet. Entre-temps, un portefeuille froid d'une bourse partenaire a été vidé d'un montant non divulgué de ZIL. Zilliqa a immédiatement suspendu toutes les transactions natives sur l'ensemble du réseau — les transferts compatibles EVM n'ont jamais été touchés — et Upbit a gelé les dépôts et retraits de ZIL. Le jeton a perdu environ 17 à 19% sur la semaine, autour de 0,0024 dollar.

Les appareils Ledger eux-mêmes n'ont jamais été compromis : le bug vivait dans le code d'une application tierce, pas dans la puce sécurisée. Maigre consolation pour qui a signé des transferts natifs de ZIL via Ledger depuis 2019 : une fois une signature inscrite sur la blockchain, elle y reste pour toujours, et une application corrigée ne peut pas annuler une clé déjà exposée. La seule vraie solution, selon Zilliqa, est de transférer les fonds vers une nouvelle adresse.

L'affaire rappelle une évidence : un portefeuille matériel ne protège que ce que le logiciel qui tourne dessus fait correctement, et si ce logiciel se trompe, une puce parfaite n'y change rien.

Questions et réponses

Questions fréquemment posées sur le sujet de l'article

Quelle est exactement la faille Ledger-Zilliqa ?

Depuis 2019, l'application qui signe les transactions natives de Zilliqa sur Ledger générait un nombre aléatoire (nonce) prévisible. Comparer quelques signatures d'un même compte suffit à reconstruire la clé privée.

Les appareils Ledger eux-mêmes sont-ils compromis ?

Non. La faille se trouvait dans l'application tierce pour Zilliqa, pas dans la puce sécurisée de Ledger. Les appareils n'ont jamais été compromis.

Que doivent faire les détenteurs de ZIL ayant utilisé Ledger ?

Quiconque a signé cinq transferts natifs de ZIL ou plus via Ledger depuis 2019 doit considérer cette clé comme compromise et transférer ses fonds vers une nouvelle adresse — une application corrigée ne peut pas annuler des signatures déjà publiées.

Comment la faille a-t-elle été découverte ?

Le 19 juillet, KuCoin a repéré une activité suspecte, la cause a été confirmée avec Zilliqa le 21, et Zilliqa a publié les détails le 22 juillet.

Qu'advient-il désormais du réseau Zilliqa ?

Les transactions natives restent suspendues, tandis que les transferts compatibles EVM fonctionnent normalement. Zilliqa finalise une version corrigée avec Ledger.