#CriticalVulnerability 🚨 Attention aux développeurs d’applications
$BTC : vulnérabilité critique dans « bitcoinjs-lib »
Deux bogues graves ont été corrigés dans la bibliothèque populaire `bitcoinjs-lib`. Ces failles pouvaient amener les applications à sous-estimer considérablement les frais de minage de transactions PSBT (Partially Signed Bitcoin Transaction, ou transaction Bitcoin partiellement signée) entièrement valides et signées.
Quel est le problème ?
Dans Bitcoin, les frais correspondent à la différence entre la somme des entrées et celle des sorties. Deux erreurs de logique distinctes faisaient que la bibliothèque indiquait des frais minimes (par exemple, 200 ou 1 000 satoshis), alors que le montant réellement prélevé sur le portefeuille et versé aux mineurs pouvait atteindre près de 1 BTC (900 millions de satoshis).
1. Valeurs d’entrée contradictoires : le processus de signature utilisait toutes les données de la transaction précédente, tandis que le module de calcul des frais s’appuyait sur un enregistrement contradictoire indiquant une valeur inférieure. La signature restait valide, mais le calcul des frais était erroné.
2. Enregistrements de la valeur des entrées manquants : pour les entrées finalisées dont le montant n’était pas indiqué, la bibliothèque considérait que leur valeur était « 0 ». Cela permettait de dissimuler des frais réels très élevés dans des transactions importées.
Quelles versions sont concernées ? Série v5 : correction dans
➡️ 5.2.2 (versions vulnérables : 5.1.0 – 5.2.1)
➡️ Série v6 : correction dans 6.1.9 (versions vulnérables : 6.0.0 – 6.1.8)
➡️ Série v7 : correction dans 7.0.4 (versions vulnérables : 7.0.0-rc.0 – 7.0.3)
Que devez-vous faire ?
➡️ Passez aux versions corrigées (5.2.2, 6.1.9, 7.0.4).
➡️ Si une mise à jour est impossible pour le moment, vérifiez les valeurs des entrées de manière indépendante et rejetez toute donnée incohérente avant de signer ou de calculer les frais.
La sécurité de votre application dépend de votre choix : faire aveuglément confiance aux bibliothèques ou vérifier chaque satoshi. 🛡️