CVE-2026-56744: 
JavaScript 취약성 분석 및 완화

개요

CVE-2026-56744 is a transaction output tampering vulnerability in the BSV blockchain wallet toolbox npm packages (@bsv/wallet-toolbox, @bsv/wallet-toolbox-client, and @bsv/wallet-toolbox-mobile) that allows a malicious or compromised remote storage provider to redirect cryptocurrency payments without the user's knowledge. The flaw was reported by Eric Chennells and disclosed on September 24, 2026. Affected versions are @bsv/wallet-toolbox and @bsv/wallet-toolbox-client from 1.1.47 through 2.3.3, and @bsv/wallet-toolbox-mobile from 1.3.21 through 2.3.3. It carries a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory).

기술적 세부 사항

The root cause is improper validation of consistency within input (CWE-1288): the buildSignableTransaction function in signer/methods/buildSignableTransaction.js takes each non-change output's lockingScript directly from the StorageCreateActionResult response without comparing it to the lockingScript supplied by the caller in args.outputs. Additionally, WalletPermissionsManager.createAction parses the built transaction but only reads inputs and fee data — it never inspects tx.outputs. This means a storage provider operating as a StorageClient (the default remote configuration, e.g., storage.babbage.systems) can substitute a recipient script or inject an additional output funded by reducing change, and the wallet will sign and broadcast the manipulated transaction. The attacker must be the storage operator or someone who has compromised it; a passive network MITM is insufficient because StorageServer.processAction validates the signed raw transaction against what storage stored (GitHub Advisory, Fix Commit).

영향

A malicious or compromised storage provider can silently redirect BSV cryptocurrency funds to an attacker-controlled address while the application's user interface continues to display the originally intended recipient, providing no visible indication of the substitution. The integrity of every transaction created via a remote StorageClient is at risk, with direct financial loss to users. There is no confidentiality or availability impact; the vulnerability is purely an integrity issue affecting transaction outputs (GitHub Advisory).

악용 가능성

No public proof-of-concept exploit code has been observed, and there is no evidence of in-the-wild exploitation at the time of disclosure (GitHub Advisory). However, the maintainers confirmed the attack is practical: they ran a modified storage server returning a substituted recipient output and pointed an unmodified yours-wallet build at it, successfully redirecting a payment without any wallet-side indication. The vulnerability requires no privileges or user interaction and is exploitable over the network. The EPSS score is approximately 0.30%, and it is not listed in the CISA KEV catalog (GitHub Advisory).

착취 단계

  1. Operate or compromise a StorageClient provider: The attacker must control a BSV storage server (e.g., by operating a custom StorageClient endpoint or compromising an existing one such as storage.babbage.systems). Passive network interception is insufficient.
  2. Intercept the createAction call: When a victim wallet application calls createAction with a payment to a legitimate recipient, the storage server receives the request including the caller's intended args.outputs (recipient locking scripts and satoshi amounts).
  3. Substitute or inject outputs in the response: The malicious storage server returns a StorageCreateActionResult where either (a) a caller-specified output's lockingScript is replaced with an attacker-controlled script, or (b) an additional output paying the attacker is injected (funded by reducing the change output), while the caller's outputs appear intact.
  4. Wallet signs the manipulated transaction: buildSignableTransaction builds the transaction using the storage-supplied scripts without verification. The wallet signs and broadcasts the transaction, sending funds to the attacker's address.
  5. UI shows intended recipient: The calling application and user interface continue to display the originally requested recipient, as WalletPermissionsManager.createAction never inspects tx.outputs — the substitution is invisible to the user (GitHub Advisory, Fix Commit).

타협의 징후

  • Network: Outbound BSV transactions broadcast to the blockchain where the on-chain recipient address differs from the address displayed in the application UI; connections to an unexpected or unauthorized StorageClient endpoint.
  • Logs: Application logs showing createAction calls completing successfully while blockchain explorers reveal the transaction outputs do not match the intended recipients; any WERR_INVALID_PARAMETER errors related to output.lockingScript or storage outputs in updated (patched) versions may indicate attempted exploitation.
  • Blockchain: On-chain transactions originating from the wallet where output locking scripts do not correspond to the intended recipient addresses as recorded in application-level transaction history.

완화 및 해결 방법

All three packages are patched in version 2.4.0, which adds verifyRequestedOutputsUnchanged() to hard-fail if storage omits, reclassifies, rescripts, or re-values any caller-specified output, and adds verifyUnrequestedOutputsAreChangeOrCommission() to reject any injected outputs beyond the caller's that are not client-derived change or a single commission output bounded by MAX_STORAGE_COMMISSION_SATOSHIS (500,000 satoshis). Applications unable to upgrade immediately should avoid remote StorageClient providers, use local storage instead, or independently verify every transaction output's locking script and value against the original request before signing (GitHub Advisory, Release Commit).

추가 자료


근원: 이 보고서는 AI를 사용하여 생성되었습니다.

관련 JavaScript 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-61742CRITICAL9.3
  • JavaScript logoJavaScript
  • @bytebase/dbhub
아니요예Sep 24, 2026
CVE-2026-56744HIGH8.7
  • JavaScript logoJavaScript
  • @bsv/wallet-toolbox-mobile
아니요예Sep 24, 2026
CVE-2026-61782HIGH7.5
  • JavaScript logoJavaScript
  • @rsdoctor/rspack-plugin
아니요예Sep 24, 2026
CVE-2026-61788HIGH7.4
  • JavaScript logoJavaScript
  • @bytebase/dbhub
아니요예Sep 24, 2026
CVE-2026-61784MEDIUM6.1
  • JavaScript logoJavaScript
  • xhtml-purifier
아니요예Sep 24, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자