BSV Blockchain SDK has an Authentication Signature Data Preparation Vulnerability
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| bsv-blockchain | ts-sdk | affected |
|
No data.
No data.
| Vendor | Product | Versions |
|---|---|---|
| Bsv-blockchain | Ts-sdk | — |
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-vjpq-xx5g-qvmm | BSV Blockchain SDK has an Authentication Signature Data Preparation Vulnerability |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.341% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Bsv-blockchain
Bsv-blockchain ts-sdk |
|
| Vendors & Products |
Bsv-blockchain
Bsv-blockchain ts-sdk |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | The BSV Blockchain SDK is a unified TypeScript SDK for developing scalable apps on the BSV Blockchain. Prior to version 2.0.0, a cryptographic vulnerability in the TypeScript SDK's BRC-104 authentication implementation caused incorrect signature data preparation, resulting in signature incompatibility between SDK implementations and potential authentication bypass scenarios. The vulnerability was located in the `Peer.ts` file of the TypeScript SDK, specifically in the `processInitialRequest` and `processInitialResponse` methods where signature data is prepared for BRC-104 mutual authentication. The TypeScript SDK incorrectly prepared signature data by concatenating base64-encoded nonce strings (`message.initialNonce + sessionNonce`) then decoding the concatenated base64 string (`base64ToBytes(concatenatedString)`). This produced ~32-34 bytes of signature data instead of the correct 64 bytes. BRC-104 authentication relies on cryptographic signatures to establish mutual trust between peers. When signature data preparation is incorrect, signatures generated by the TypeScript SDK don't match those expected by Go/Python SDKs; cross-implementation authentication fails; and an attacker could potentially exploit this to bypass authentication checks. The fix in version 2.0.0 ensures all SDKs now produce identical cryptographic signatures, restoring proper mutual authentication across implementations. | |
| Title | BSV Blockchain SDK has an Authentication Signature Data Preparation Vulnerability | |
| Weaknesses | CWE-573 | |
| References |
| |
| Metrics |
cvssV3_1
|