Brouillard lent décode Liquid : environ 4 000 L-BTC ont été frappés à blanc, pas introduits via un peg-in

Le 6 septembre, SlowMist a décomposé cette opération : l’attaquant n’a pas effectué de peg-in. Il a frappé environ 3998,5 L-BTC, puis, en quelques minutes, il les a peg-out vers le BTC du réseau principal. Ensuite, il a remboursé environ 3400, ne gardant qu’environ 598,5 — le montant avait déjà été mentionné la semaine dernière : « comment ces nouveaux jetons ont été frappés ».

La cause première réside dans le cache de validation du Rangeproof d’Elements : lors de la concaténation des champs à longueur variable pour former la clé de cache, la longueur n’a pas été préfixée. Différentes combinaisons de paramètres peuvent alors provoquer une collision sur le même résultat « validé ». Le nœud saute directement la vérification secp256k1_rangeproof_verify et le contrôle du montant minimal. En injectant d’abord une preuve valide pour chauffer le cache, puis en soumettant une sortie factice produite par collision de clé, un mint non garanti a été rendu possible.

Même si le pont s’est arrêté et qu’il a rendu la majeure partie, cela ne signifie pas que le cache de validation des transactions confidentielles est désormais exempt de failles. La clé de cache elle-même constitue un élément primitif de consensus : si les limites ne sont pas correctement verrouillées, cela laisse une porte ouverte.