Two Bitcoin library flaws could hide massive miner fees and let valid transactions bypass safety checks.
Bitcoinjs-lib, a library used to build Bitcoin applications, has patched two bugs that can make software understate the miner fee a valid transaction would pay if broadcast and accepted.
The Oct. 26 security disclosures identify fixes in versions 5.2.2, 6.1.9 and 7.0.4 for the corresponding release lines.
The affected format is a partially signed Bitcoin transaction (PSBT), and BIP 174 defines it as a way to pass transaction information and signatures between clients. Signing, combining signatures, finalizing inputs, and extracting the transaction are separate functions, even when one application performs several of them.
The risk concerns applications that import these packages and trust bitcoinjs-lib's fee calculation or excessive-fee safeguard without independently checking the outputs being spent. Maintainers need to review their dependency version and how they validate imported PSBTs.
A Bitcoin transaction's fee is the difference between the value of its inputs and its outputs, so understating an input makes the calculated fee look smaller.
In the first flaw, signing and fee accounting can use different values for the same input. Signing uses the full previous transaction, while fee accounting prefers a conflicting record containing a smaller value. As a result, the vulnerable software can authorize the real transaction while evaluating the wrong fee.
1 in which the actual fee was 900,000,000 satoshi, but the library reported 200 satoshi. The signature verified, and extraction returned without the default fee-rate warning.
Source link







