BNB $744,76 +1,20%
XRP $1,33 +2,30%
ETH $2 353,01 +2,15%
BTC $80 881,72 +1,53%
BNB $744,76 +1,20%
XRP $1,33 +2,30%
ETH $2 353,01 +2,15%
BTC $80 881,72 +1,53%
URGENT
Technologie

bitcoinjs-lib corrige les bugs de frais dans les versions 5.2.2, 6.1.9 et 7.0.4

Bitcoinjs-lib patches fee bugs in versions 5.2.2, 6.1.9, and 7.0.4

Community Trust ScoreVérifié

86%
Réel
Vérifié28 votes
Mis à jour 1 heure il y a

Les mainteneurs de bitcoinjs-lib ont publié des divulgations de sécurité le 26 octobre, identifiant deux bugs pouvant entraîner une sous-estimation des frais de mineur qu’une transaction Bitcoin valide paierait si elle était diffusée et acceptée. Les correctifs sont inclus dans les versions 5.2.2, 6.1.9 et 7.0.4 pour leurs lignes de publication respectives.

Défauts dans le calcul des frais PSBT

Le format de transaction concerné est la transaction Bitcoin partiellement signée (PSBT). Le BIP 174 définit le PSBT comme une méthode pour transmettre des informations de transaction et des signatures entre les clients. Au sein de la bibliothèque, la signature, la combinaison des signatures, la finalisation des entrées et l’extraction de la transaction sont des fonctions distinctes, même lorsqu’une seule application en effectue plusieurs.

Le risque s’applique aux applications qui importent ces paquets et font confiance au calcul des frais de bitcoinjs-lib ou à ses garde-fous contre les frais excessifs sans vérifier indépendamment les sorties dépensées. Les frais d’une transaction Bitcoin sont calculés comme la différence entre la valeur de ses entrées et de ses sorties. Par conséquent, sous-estimer la valeur d’une entrée fait apparaître les frais calculés comme plus petits que le montant réel.

Publicité

Le premier défaut concerne la signature et la comptabilité des frais utilisant des valeurs différentes pour la même entrée. Dans ce scénario, le processus de signature utilise la transaction précédente complète, tandis que la logique de comptabilité des frais privilégie un enregistrement contradictoire contenant une valeur plus petite. Cela permet aux logiciels vulnérables d’autoriser la transaction réelle tout en évaluant les mauvais frais.

Le conseil de sécurité décrit une démonstration sur bitcoinjs-lib 7.0.1 où les frais réels étaient de 900 000 000 satoshi, mais la bibliothèque n’a signalé que 200 satoshi. Dans cette démonstration, la signature a été vérifiée avec succès et le processus d’extraction s’est terminé sans déclencher l’avertissement par défaut du taux de frais.

Le deuxième défaut concerne les entrées finalisées où les deux enregistrements de valeur d’entrée sont manquants. Lorsque ces enregistrements sont absents, le calculateur compte ces entrées comme nulles. Un PSBT déjà signé importé d’un tiers peut déclencher ce calcul sans nécessiter une nouvelle opération de signature. Un exemple hypothétique pour ce défaut a montré des frais réels de 91 000 satoshi signalés comme 1 000 satoshi. Les scripts et signatures finalisés seuls n’établissent pas la valeur d’une entrée manquante.

Remédiation et versions affectées

Une perte financière réelle nécessite qu’une transaction autorisée et valide soit diffusée et acceptée par le réseau. Les défauts ne créent pas de signatures ; à la place, une valeur excédentaire est payée en tant que frais de mineur. Le défaut des enregistrements contradictoires affecte les versions 5.2.0 à 5.2.1, 6.0.0 à 6.1.8 (y compris 6.1.0-rc.0) et 7.0.0-rc.0 à 7.0.3. Le défaut des enregistrements manquants affecte les mêmes plages v6 et v7, ainsi que les versions v5 de 5.1.0 à 5.2.1.

La remédiation fournit une méthode partagée pour résoudre les sorties précédentes pour la signature et la comptabilité. Elle rejette les valeurs ou scripts contradictoires et exige un montant pour chaque entrée lors du calcul des frais. De plus, le correctif efface les frais mis en cache et les transactions extraites après des modifications de métadonnées pertinentes ou des combinaisons.

Les mainteneurs ne pouvant pas mettre à niveau doivent vérifier indépendamment les valeurs des sorties référencées. Ils doivent rejeter les enregistrements contradictoires avant de signer ou de faire confiance aux frais, et vérifier la valeur de chaque entrée avant de faire confiance aux frais ou d’extraire une transaction. Les divulgations n’indiquent pas si des applications spécifiques ont été compromises, mais les mainteneurs sont conseillés de revoir les versions de leurs dépendances et la manière dont ils valident les PSBT importés.

Questions Fréquentes

Quelles versions de bitcoinjs-lib contiennent les correctifs de comptabilité des frais ?

Les correctifs sont inclus dans les versions 5.2.2, 6.1.9 et 7.0.4 pour les lignes de publication v5, v6 et v7, respectivement.

Ces bugs permettent-ils aux attaquants de créer des signatures non autorisées ?

Non, les défauts ne créent pas de signatures. Une perte réelle nécessite qu’une transaction autorisée et valide soit diffusée et acceptée par le réseau, où une valeur excédentaire est payée en tant que frais de mineur.

Community Trust IndexHigh Confidence
86%
Réel
Réel86%14%Fake
28 community signals

Sydney TheCMO

Sydney a plus de 20 ans d'expérience commerciale et a passé les 10 dernières années à travailler dans le domaine du marketing en ligne. Elle était la directrice marketing d'une grande société de courtage en devises.

Publicité

Articles connexes