#CriticalVulnerability 🚨 Achtung, Anwendungsentwickler
$BTC : kritische Schwachstelle in „bitcoinjs-lib“
Zwei schwerwiegende Fehler wurden in der beliebten Bibliothek `bitcoinjs-lib` behoben. Diese Schwachstellen konnten dazu führen, dass Anwendungen die Miner-Gebühren für vollständig gültige, signierte PSBT-Transaktionen (Partially Signed Bitcoin Transactions) katastrophal zu niedrig angaben.
Worum geht es?
Bei Bitcoin entspricht die Gebühr der Differenz zwischen der Summe der Eingaben und der Summe der Ausgaben. Zwei verschiedene Logikfehler führten dazu, dass die Bibliothek eine minimale Gebühr meldete (z. B. 200 oder 1.000 Satoshis), obwohl der tatsächlich vom Wallet abgezogene und an Miner gezahlte Betrag fast 1 BTC (900 Millionen Satoshis) betragen konnte.
1. Widersprüchliche Eingabewerte: Beim Signieren wurden die vollständigen Daten der vorherigen Transaktion verwendet, während sich das Gebührenberechnungsmodul auf einen widersprüchlichen Datensatz mit einem niedrigeren Wert stützte. Die Signatur blieb zwar gültig, aber die Gebührenberechnung war falsch.
2. Fehlende Eingabewert-Datensätze: Bei finalisierten Eingaben ohne angegebenen Betrag behandelte die Bibliothek den Wert als „0“. Dadurch konnte eine enorme tatsächliche Gebühr in importierten Transaktionen verborgen werden.
Welche Versionen sind betroffen? Reihe v5: behoben in
➡️ 5.2.2 (betroffen: 5.1.0 – 5.2.1)
➡️ Reihe v6: behoben in 6.1.9 (betroffen: 6.0.0 – 6.1.8)
➡️ Reihe v7: behoben in 7.0.4 (betroffen: 7.0.0-rc.0 – 7.0.3)
Was sollten Sie tun?
➡️ Aktualisieren Sie auf die gepatchten Versionen (5.2.2, 6.1.9, 7.0.4).
➡️ Falls eine Aktualisierung derzeit nicht möglich ist, überprüfen Sie die Eingabewerte unabhängig und weisen Sie vor dem Signieren oder der Gebührenberechnung alle widersprüchlichen Einträge zurück.
Die Sicherheit Ihrer Anwendung hängt davon ab, ob Sie Bibliotheken blind vertrauen oder jedes einzelne Satoshi überprüfen. 🛡️