Insufficiently protected credentials in bitcoinjs tiny-secp256k1
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-522.
Summary
tiny-secp256k1 is a tiny secp256k1 native/JS wrapper. Prior to version 1.1.7, a private key can be extracted on signing a malicious JSON-stringifiable object, when global Buffer is the buffer package. This affects only environments where require('buffer') is the NPM buffer package. The Buffer.isBuffer check can be bypassed, resulting in k reuse for different messages, leading to private key extraction over a single invalid message (and a second one for which any message/signature could be taken, e.g. previously known valid one). This issue has been patched in version 1.1.7.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| bitcoinjs | tiny-secp256k1 | before 1.1.7 | 1.1.7 | Patch available | CNA |
| — | tiny-secp256k1 (npm) | before 1.1.7 | 1.1.7 | Patch available | GHSA-7mc2-6phr-23xc |
- tiny-secp256k1 Vendorbitcoinjs Affected before 1.1.7 Fixed in 1.1.7 Patch available CNA
- tiny-secp256k1 (npm) Vendor— Affected before 1.1.7 Fixed in 1.1.7 Patch available GHSA-7mc2-6phr-23xc
Remediation
- Fix · CNA tiny-secp256k1 (bitcoinjs) Fixed in 1.1.7
- Fix · GHSA-7mc2-6phr-23xc tiny-secp256k1 (npm) Fixed in 1.1.7 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-49364
- 2026-10-03 Alias added: GHSA-7mc2-6phr-23xc
References
More bitcoinjs vulnerabilities
- TI-2024-32953 tiny-secp256k1 allows for verify() bypass when running in bundled environment CVSS 4.0HIGH 8.1
- TI-2026-85137 bitcoinjs-lib block root check accepts duplicated transaction lists CVSS 4.0CRITICAL 9.3
Sources
- CVE-2024-49364 · CVE Program
- CVE-2024-49364 · NVD
- FIRST EPSS
- GHSA-7mc2-6phr-23xc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences