Impact
The vulnerability arises because @bsv/wallet-toolbox, @bsv/wallet-toolbox-client, and @bsv/wallet-toolbox-mobile do not verify that the output locking scripts returned by a remote StorageClient match those requested by the caller. A malicious or compromised storage provider can replace the intended recipient script or add an additional output, causing the wallet to sign and broadcast a transaction that diverts funds while the user interface continues to show the original recipient. This flaw permits unauthorized transfer of wallet funds and is classified as CWE-1288.
Affected Systems
Affected products are bsv-blockchain’s @bsv/wallet-toolbox, @bsv/wallet-toolbox-client, and @bsv/wallet-toolbox-mobile. Vulnerable versions include wallet-toolbox 1.1.47 through 2.3.3 and wallet-toolbox-client 1.1.47 through 2.3.3, as well as mobile 1.3.21 through 2.3.3. All three packages are fixed in version 2.4.0.
Risk and Exploitability
The CVSS score of 8.7 signals high severity, while the EPSS score is not available and the vulnerability is not listed in CISA KEV. Exploitation requires a remote StorageClient; an attacker who controls or compromises the storage provider can forge transaction outputs, redirect payments, and bypass the wallet’s UI. Consequently, any system that relies on remote storage for transaction creation is vulnerable unless the software is patched or the remote storage path is removed.
OpenCVE Enrichment
Github GHSA