Skip to content
Heist/ feed
Back to feed
High

`@bsv/wallet-toolbox` / `-client` / `-mobile` don't verify storage-supplied recipient output scripts against caller-requested outputs in createAction (can redirect payments when using remote storage)

Type: advisorySources: OSV

`@bsv/wallet-toolbox` provides BRC-100 wallet signing and storage components, while `@bsv/wallet-toolbox-client` and `@bsv/wallet-toolbox-mobile` provide client-focused distributions for standard and mobile applications using wallet storage services. A vulnerability in these packages causes transactions created through a remote `StorageClient` to trust output locking scripts returned by the storage provider without verifying that they match the outputs requested by the caller. A malicious or compromised storage provider can substitute a recipient script or inject an additional output, causing the wallet to sign and broadcast a transaction that redirects funds while the application and user interface continue to display the intended recipient. Source and npm publication history indicate that stable versions `@bsv/wallet-toolbox` and `@bsv/wallet-toolbox-client` from 1.1.47 through 2.3.3, and `@bsv/wallet-toolbox-mobile` from its initial 1.3.21 release through 2.3.3, are affected. All three packages are patched in version 2.4.0. Applications unable to upgrade should avoid remote `StorageClient` providers, use local storage, or independently verify every transaction output’s locking script and value against the original request before signing

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-56744
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 04:44 UTC · Revision 1

Source evidence

`@bsv/wallet-toolbox` / `-client` / `-mobile` don't verify storage-supplied recipient output scripts against caller-requested outputs in createAction (can redirect payments when using remote storage)

core-osv · Original source

Published 24 Sept 2026, 16:56 UTC

`@bsv/wallet-toolbox` provides BRC-100 wallet signing and storage components, while `@bsv/wallet-toolbox-client` and `@bsv/wallet-toolbox-mobile` provide client-focused distributions for standard and mobile applications using wallet storage services. A vulnerability in these packages causes transactions created through a remote `StorageClient` to trust output locking scripts returned by the storage provider without verifying that they match the outputs requested by the caller. A malicious or compromised storage provider can substitute a recipient script or inject an additional output, causing the wallet to sign and broadcast a transaction that redirects funds while the application and user interface continue to display the intended recipient. Source and npm publication history indicate that stable versions `@bsv/wallet-toolbox` and `@bsv/wallet-toolbox-client` from 1.1.47 through 2.3.3, and `@bsv/wallet-toolbox-mobile` from its initial 1.3.21 release through 2.3.3, are affected. All three packages are patched in version 2.4.0. Applications unable to upgrade should avoid remote `StorageClient` providers, use local storage, or independently verify every transaction output’s locking script and value against the original request before signing

osv:CVE-2026-56744
Complete source record
{
  "id": "a96294a3e90eefa3272e29c142f2e5d7825f10639ba95fc26b56d1aa25727ca5",
  "url": "https://osv.dev/vulnerability/CVE-2026-56744",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "`@bsv/wallet-toolbox` / `-client` / `-mobile` don't verify storage-supplied recipient output scripts against caller-requested outputs in createAction (can redirect payments when using remote storage)",
    "summary": "`@bsv/wallet-toolbox` provides BRC-100 wallet signing and storage components, while `@bsv/wallet-toolbox-client` and `@bsv/wallet-toolbox-mobile` provide client-focused distributions for standard and mobile applications using wallet storage services. A vulnerability in these packages causes transactions created through a remote `StorageClient` to trust output locking scripts returned by the storage provider without verifying that they match the outputs requested by the caller. A malicious or compromised storage provider can substitute a recipient script or inject an additional output, causing the wallet to sign and broadcast a transaction that redirects funds while the application and user interface continue to display the intended recipient. Source and npm publication history indicate that stable versions `@bsv/wallet-toolbox` and `@bsv/wallet-toolbox-client` from 1.1.47 through 2.3.3, and `@bsv/wallet-toolbox-mobile` from its initial 1.3.21 release through 2.3.3, are affected. All three packages are patched in version 2.4.0. Applications unable to upgrade should avoid remote `StorageClient` providers, use local storage, or independently verify every transaction output’s locking script and value against the original request before signing",
    "evidence": "osv:CVE-2026-56744",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-56744",
      "aliases": [
        "CVE-2026-56744",
        "GHSA-36f9-7rg5-cpf8"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/bsv-blockchain/ts-stack",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "3a11f6111919245a3090e9f3895cfc4f21a80d28"
                },
                {
                  "fixed": "5492cabbef4ddc7f60cc49cdf5d8c74ed2e5d949"
                },
                {
                  "fixed": "5ee60395e78e8b822d9a78efeacc6039c249819b"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "fixed": "3a11f6111919245a3090e9f3895cfc4f21a80d28"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "5492cabbef4ddc7f60cc49cdf5d8c74ed2e5d949"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "5ee60395e78e8b822d9a78efeacc6039c249819b"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            },
            {
              "repo": "https://github.com/bsv-blockchain/wallet-toolbox",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "ca651b067c0238cd8b1ddd3af225daa503857a07"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "fixed": "ca651b067c0238cd8b1ddd3af225daa503857a07"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "release/v2026-July-3_B",
            "release/v2026-July-3",
            "release/v2026-July-2",
            "release/v2026-July-1",
            "release/v2026-June-30_B",
            "release/v2026-June-30",
            "release/v2026-June-29_B",
            "release/v2026-June-29",
            "infra/v2026-June-26",
            "infra/v2026-June-25",
            "release/v2026-june-24_B",
            "release/v2026-June-24",
            "release/v2026-June-23_B",
            "release/v2026-June-23",
            "infra/v2026-June-19_E",
            "infra/v2026-June-19_D",
            "infra/v2026-June-19_C",
            "infra/v2026-June-19_B",
            "release/v2026-June-19_B",
            "infra/v2026-June-19",
            "release/v2026-June-16",
            "release/v2026-June-10",
            "release/v2026-May-28",
            "infra/v2026-May-28",
            "release/v2026-May-26",
            "infra/v2026-May-25_C",
            "infra/v2026-May-25_B",
            "infra/v2026-May-25",
            "release/v2026-May-24_B",
            "release/v2026-May-24",
            "release/v2026-May-23_B",
            "release/v2026-May-23",
            "release/v2026-May-22_B",
            "infra/v2026-May-22",
            "release/v2026-May-22",
            "release/v2006-May-20",
            "release/v2026-May-18",
            "release/v2026-05-18_attempt_4",
            "release/v2026-05-18_attempt_3",
            "release/v2026-05-18_attempt_2",
            "release/v2026-05-18",
            "release/v2026-05-17",
            "elease/v2026-05-18",
            "packages/wallet/wallet-toolbox/v2.1.26",
            "packages/wallet/wallet-toolbox/mobile/v2.1.26",
            "packages/wallet/wallet-toolbox/client/v2.1.26",
            "packages/wallet/ts-wallet-relay/v0.1.1",
            "Sonar-Wave-6",
            "Sonar-Wave-2",
            "Sonar-Wave-1",
            "packages/overlays/topics/v1.0.0",
            "packages/helpers/fund-wallet/v1.3.1",
            "packages/sdk/v2.1.0",
            "packages/wallet/wallet-toolbox/v2.1.24",
            "first-passing",
            "v1.1.46",
            "v1.1.45",
            "v1.1.44",
            "v1.1.43",
            "v1.1.42",
            "v1.1.41",
            "v1.1.40",
            "v1.1.39",
            "v1.1.38",
            "v1.1.37",
            "v1.1.36",
            "v1.1.35",
            "v1.1.34",
            "v1.1.33",
            "v1.1.32",
            "v1.1.31",
            "v1.1.30",
            "v1.1.29",
            "v1.1.28",
            "v1.1.27",
            "v1.1.25",
            "v1.1.24",
            "v1.1.23",
            "v1.1.22",
            "v1.1.21",
            "v1.1.20",
            "v1.1.19",
            "v1.1.18",
            "v1.1.17",
            "v1.1.15",
            "v1.1.7",
            "v1.1.5",
            "v1.1.4",
            "v1.1.3",
            "v1.1.1",
            "v0.0.40",
            "v0.0.39",
            "wspub",
            "v0.0.38",
            "v0.0.37",
            "v0.0.36",
            "v0.0.35",
            "v0.0.34",
            "v0.0.32",
            "v0.0.31",
            "v0.0.30",
            "v0.0.29",
            "v0.0.28",
            "v0.0.27",
            "v0.0.26",
            "v0.0.25",
            "v0.0.24",
            "v0.0.23",
            "v0.0.22",
            "v0.0.19",
            "v0.0.18",
            "v0.0.17",
            "v0.0.16",
            "v0.0.12",
            "v0.0.11",
            "v0.0.10",
            "v0.0.9",
            "v0.0.8",
            "v0.0.7",
            "v0.0.6",
            "v0.0.5",
            "v0.0.4",
            "v0.0.3",
            "v0.0.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-56744.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.067758675Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56744.json",
        "https://github.com/bsv-blockchain/ts-stack/security/advisories/GHSA-36f9-7rg5-cpf8",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-56744",
        "https://github.com/bsv-blockchain/ts-stack/commit/3a11f6111919245a3090e9f3895cfc4f21a80d28",
        "https://github.com/bsv-blockchain/ts-stack/commit/5492cabbef4ddc7f60cc49cdf5d8c74ed2e5d949",
        "https://github.com/bsv-blockchain/ts-stack/commit/5ee60395e78e8b822d9a78efeacc6039c249819b",
        "https://github.com/bsv-blockchain/wallet-toolbox/commit/ca651b067c0238cd8b1ddd3af225daa503857a07"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-1288"
        ],
        "cna_assigner": "GitHub_M",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "1.1.47"
                  },
                  {
                    "fixed": "2.4.0"
                  },
                  {
                    "introduced": "1.1.47"
                  },
                  {
                    "fixed": "2.4.0"
                  },
                  {
                    "introduced": "1.3.21"
                  },
                  {
                    "fixed": "2.4.0"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StringRangeExpression"
              }
            ]
          },
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "1.1.47"
                  },
                  {
                    "last_affected": "2.3.3"
                  },
                  {
                    "last_affected": "2.3.3"
                  },
                  {
                    "fixed": "2.4.0"
                  }
                ],
                "source": "DESCRIPTION"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56744.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-56744",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492460,
  "published_at": "2026-09-24T16:56:12.791+00:00"
}