CVE-2026-40070
bsv-sdk and bsv-wallet persist unverified certifier signatures in acquire_certificate (direct and issuance paths)
Impact
BSV Ruby SDK is the Ruby SDK for the BSV blockchain. From 0.3.1 to before 0.8.2, BSV::Wallet::WalletClient#acquire_certificate persists certificate records to storage without verifying the certifier's signature over the certificate contents. In acquisition_protocol: 'direct', the caller supplies all certificate fields (including signature:) and the record is written to storage verbatim. In acquisition_protocol: 'issuance', the client POSTs to a certifier URL and writes whatever signature the response body contains, also without verification. An attacker who can reach either API (or who controls a certifier endpoint targeted by the issuance path) can forge identity certificates that subsequently appear authentic to list_certificates and prove_certificate.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| rubygems | bsv-sdk | >= 0.3.1, < 0.8.2 | 0.8.2 |
| rubygems | bsv-wallet | >= 0.1.2, < 0.3.4 | 0.3.4 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Sgbett | Bsv-Wallet | from 0.1.2 before 0.3.4 |
| Sgbett | Bsv Ruby Sdk | from 0.3.1 before 0.8.2 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://brc.dev/52
- https://github.com/sgbett/bsv-ruby-sdk/commit/4992e8a265fd914a7eeb0405c69d1ff0122a84cc
- https://github.com/sgbett/bsv-ruby-sdk/issues/305
- https://github.com/sgbett/bsv-ruby-sdk/pull/306
- https://github.com/sgbett/bsv-ruby-sdk/security/advisories/GHSA-hc36-c89j-5f4j
- https://github.com/advisories/GHSA-hc36-c89j-5f4j
- https://nvd.nist.gov/vuln/detail/CVE-2026-40070
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/bsv-sdk/CVE-2026-40070.yml
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/bsv-wallet/CVE-2026-40070.yml