CVE-2026-40070: bsv-sdk and bsv-wallet persist unverified certifier signatures in acquire_certificate (direct and issuance paths)
BSV::Wallet::WalletClient#acquire_certificate persists certificate records to storage without verifying the certifier’s signature over the certificate contents. Both acquisition paths are affected:
acquisition_protocol: 'direct'— the caller supplies all certificate fields (includingsignature:) and the record is written to storage verbatim.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.
References
- brc.dev/52
- github.com/advisories/GHSA-hc36-c89j-5f4j
- github.com/sgbett/bsv-ruby-sdk
- github.com/sgbett/bsv-ruby-sdk/commit/4992e8a265fd914a7eeb0405c69d1ff0122a84cc
- github.com/sgbett/bsv-ruby-sdk/issues/305
- github.com/sgbett/bsv-ruby-sdk/pull/306
- github.com/sgbett/bsv-ruby-sdk/security/advisories/GHSA-hc36-c89j-5f4j
- nvd.nist.gov/vuln/detail/CVE-2026-40070
Code Behaviors & Features
Detect and mitigate CVE-2026-40070 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →