Bitcoin’s Security Landscape: A Comprehensive Review of Vulnerabilities and Exposures

03.04.2025

The provided text outlines a detailed timeline of vulnerabilities and exposures in Bitcoin software and protocols, highlighting the evolution of security issues over time. Below is a summarized breakdown:

Key Vulnerabilities in Bitcoin History

  1. Early Protocol Issues:
  • Pre-BIP changes affected all Bitcoin clients, leading to potential network splits (Netsplit) and requiring hardforks and softforks to resolve[1].
  • CVE-2010-5139 allowed an inflation attack where 184 billion BTC were minted due to a combined output overflow. This required a rollback of the blockchain[2].
  1. Software Bugs:
  • CVE-2010-5141 enabled theft through OP_RETURN, allowing any output to be spent[1].
  • CVE-2012-2459 caused Netsplits via block hash collisions[1].
  • CVE-2018-17144 exposed vulnerabilities in transaction validation, enabling inflation attacks through duplicate inputs[1][2].
  1. Denial-of-Service (DoS) Attacks:
  • Multiple DoS vulnerabilities were identified, such as CVE-2010-5137 (OP_LSHIFT crash), CVE-2013-2293 (continuous hard disk seek), and CVE-2024-34149 (script size limit bypass)[1].
  • Resource exhaustion attacks targeted memory and CPU, including CVE-2012-4683 (CPU exhaustion using alerts) and CVE-2024-34149 (OOM via fake block headers)[1].
  1. Exposure Risks:
  • Early wallets lacked encryption (CVE-2011-4447), exposing private keys[6].
  • Predictable outputs and remote discovery of wallet addresses were noted in CVE-2013-2272 and CVE-2013-2273[1].
  1. Social Engineering and Theft:
  • Social vulnerabilities like CVE-2020-14199 exploited double-signing for unintended fees[1].
  • RPC authentication flaws enabled local theft risks (e.g., CVE-2013-4165)[1].
  1. Protocol Forks:
  • Softforks like BIP 16, BIP 34, BIP 141 (SegWit), and Taproot introduced stricter rules for transaction validation but also revealed new attack surfaces[1][2].

Recent Developments

More recent vulnerabilities include:

  • CVE-2023-50428 bypassing datacarrier size limits using OP_FALSE, OP_IF.
  • Upcoming threats in 2024 targeting Bitcoin Core/Knots versions with DoS attacks via malicious URIs or infinite loops in P2P communication[1].

Summary

Bitcoin’s security has improved significantly over time, but its history is marked by critical vulnerabilities ranging from inflation exploits to denial-of-service attacks and wallet exposures. Continuous updates to software protocols and community vigilance have mitigated many risks, though emerging threats remain a concern.


CVEAnnouncedAffectsSeverityAttack is…FlawNet
Pre-BIP protocol changesn/aAll Bitcoin clientsNetsplit[1]Implicit[2]Various hardforks and softforks100%
CVE-2010-51372010-07-28wxBitcoin and bitcoindDoS[3]EasyOP_LSHIFT crash100%
CVE-2010-51412010-07-28wxBitcoin and bitcoindTheft[4]EasyOP_RETURN could be used to spend any output.100%
CVE-2010-51382010-07-29wxBitcoin and bitcoindDoS[3]EasyUnlimited SigOp DoS100%
CVE-2010-51392010-08-15wxBitcoin and bitcoindInflation[5]EasyCombined output overflow100%
CVE-2010-51402010-09-29wxBitcoin and bitcoindDoS[3]EasyNever confirming transactions100%
CVE-2011-44472011-11-11wxBitcoin and bitcoindExposure[6]HardWallet non-encryption100%
CVE-2012-19092012-03-07Bitcoin protocol and all clientsNetsplit[1]Very hardTransaction overwriting100%
CVE-2012-19102012-03-17bitcoind & Bitcoin-Qt for WindowsUnknown[7]HardNon-thread safe MingW exceptions100%
BIP 00162012-04-01All Bitcoin clientsFake Conf[8]Miners[9]Softfork: P2SH100%
CVE-2012-24592012-05-14bitcoind and Bitcoin-QtNetsplit[1]EasyBlock hash collision (via merkle root)100%
CVE-2012-37892012-06-20bitcoind and Bitcoin-QtDoS[3]Easy(Lack of) orphan txn resource limits100%
CVE-2012-4682bitcoind and Bitcoin-QtDoS[3]100%
CVE-2012-46832012-08-23bitcoind and Bitcoin-QtDoS[3]EasyTargeted DoS by CPU exhaustion using alerts100%
CVE-2012-46842012-08-24bitcoind and Bitcoin-QtDoS[3]EasyNetwork-wide DoS using malleable signatures in alerts100%
CVE-2013-22722013-01-11bitcoind and Bitcoin-QtExposure[6]EasyRemote discovery of node’s wallet addresses99.99%
CVE-2013-22732013-01-30bitcoind and Bitcoin-QtExposure[6]EasyPredictable change output99.99%
CVE-2013-22922013-01-30bitcoind and Bitcoin-QtDoS[3]HardA transaction that takes at least 3 minutes to verify0%
CVE-2013-22932013-02-14bitcoind and Bitcoin-QtDoS[3]EasyContinuous hard disk seek99.99%
CVE-2013-32192013-03-11bitcoind and Bitcoin-Qt 0.8.0Fake Conf[8]Miners[9]Unenforced block protocol rule100%
CVE-2013-32202013-03-11bitcoind and Bitcoin-QtNetsplit[1]HardInconsistent BDB lock limit interactions99.99%
BIP 00342013-03-25All Bitcoin clientsFake Conf[8]Miners[9]Softfork: Height in coinbase100%
BIP 00502013-05-15All Bitcoin clientsNetsplit[1]Implicit[2]Hard fork to remove txid limit protocol rule99.99%
CVE-2013-46272013-06-??bitcoind and Bitcoin-QtDoS[3]EasyMemory exhaustion with excess tx message data99%
CVE-2013-41652013-07-20bitcoind and Bitcoin-QtTheft[10]LocalTiming leak in RPC authentication99%
CVE-2013-57002013-09-04bitcoind and Bitcoin-Qt 0.8.xDoS[3]EasyRemote p2p crash via bloom filters99%
CVE-2014-01602014-04-07Anything using OpenSSL for TLSUnknown[7]EasyRemote memory leak via payment protocolUnknown
CVE-2015-36412014-07-07bitcoind and Bitcoin-Qt prior to 0.10.2DoS[3]EasyOOM via p2p99.9%
BIP 662015-02-13All Bitcoin clientsFake Conf[8]Miners[9]Softfork: Strict DER signatures99%
BIP 652015-11-12All Bitcoin clientsFake Conf[8]Miners[9]Softfork: OP_CHECKLOCKTIMEVERIFY99%
BIPs 68, 112 & 1132016-04-11All Bitcoin clientsFake Conf[8]Miners[9]Softforks: Rel locktime, CSV & MTP locktime99%
CVE-2015-60312015-09-15MiniUPnPc
Bitcoin Core/Knots prior to 0.11.2
AnythingLANBuffer overflow
BIPs 141, 143 & 1472016-10-27All Bitcoin clientsFake Conf[8]Miners[9]Softfork: Segwit99%
CVE-2016-88892016-10-27Bitcoin Knots GUI 0.11.0 – 0.13.0ExposureHardDebug console history storing sensitive info100%
CVE-2017-9230?Bitcoin??ASICBoost0%
BIP 1482017-03-12All Bitcoin clientsFake Conf[8]Miners[9]Softfork: Segwit UASF?
CVE-2017-128422018-06-09No commitment to block merkle tree depth
CVE-2016-107242018-07-02bitcoind and Bitcoin-Qt prior to 0.13.0DoS[3]Keyholders[11]Alert memory exhaustion99%
TBD2024-07-03Bitcoin Core/Knots prior to 0.15.0DoS[3]EasyOOM via fake block headers
CVE-2016-107252018-07-02bitcoind and Bitcoin-Qt prior to 0.13.0DoS[3]Keyholders[11]Final alert cancellation99%
CVE-2018-171442018-09-17bitcoind and Bitcoin-Qt prior to 0.16.3Inflation[5]Miners[9]Missing check for duplicate inputs80%
CVE-2018-205872019-02-08Bitcoin Knots prior to 0.17.1, and all current Bitcoin Core releasesTheft[10]LocalNo alert for RPC service binding failure<1%
CVE-2017-183502019-06-22bitcoind and Bitcoin-Qt prior to 0.15.1UnknownVaries[12]Buffer overflow from SOCKS proxy94%
CVE-2018-205862019-06-22bitcoind and Bitcoin-Qt prior to 0.17.1DeceptionRPC accessDebug log injection via unauthenticated RPC77%
TBD2024-07-03Bitcoin Core/Knots prior to 0.18.0DoSEasyOrphan transaction CPU tieup
CVE-2019-129982019-08-30c-lightning prior to 0.7.1TheftEasyMissing check of channel funding UTXO
CVE-2019-129992019-08-30lnd prior to 0.7TheftEasyMissing check of channel funding UTXO amount
CVE-2019-130002019-08-30eclair prior to 0.3TheftEasyMissing check of channel funding UTXO
TBD2024-07-03Bitcoin Core/Knots prior to 0.20.0DoSEasyNetwork buffer OOM
TBD2024-07-03Bitcoin Core/Knots prior to 0.20.0CPU usageEasyInfinite loop via p2p
TBD2024-07-03Bitcoin Core/Knots prior to 0.20.0DoSRecipient[13]OOM via malicious BIP72 URI
CVE-2020-141992020-06-03Trezor and othersTheftSocial[14]Double-signing can enable unintended fees
CVE-2018-171452020-09-09Bitcoin Core prior to 0.16.2
Bitcoin Knots prior to 0.16.1
Bcoin prior to 1.0.2
Btcd prior to 0.21.0
DoS[3]Easyp2p memory blow-up87%
CVE-2020-268952020-10-08lnd prior to 0.10TheftEasyMissing low-S normalization for HTLC signatures
CVE-2020-268962020-10-08lnd prior to 0.11TheftVaries[15]Invoice preimage extraction via forwarded HTLC
CVE-2020-14198Bitcoin Core 0.20.1DoS[3]EasyRemote DoS93%
TBD2024-07-03Bitcoin Core/Knots prior to 0.20.2Netsplit[1]VariesAdjusted time manipulation
CVE-2021-34012021-02-01Bitcoin Core GUI prior to 0.19.0
Bitcoin Knots GUI prior to 0.18.1
TheftHardQt5 remote execution64%
TBD2024-07-31Bitcoin Core/Knots prior to 22.0 with UPnP enabledDoSLocalOOM via LAN spam
TBD2024-07-31Bitcoin Core/Knots prior to 22.0DoSEasyOOM via p2p spam
CVE-2021-318762021-05-06Various wallets
CVE-2021-415912021-10-04Lightning software
CVE-2021-415922021-10-04Lightning software
CVE-2021-415932021-10-04Lightning software
BIPs 341-3432021-11-13All Bitcoin nodesFake Conf[8]Miners[9]Softfork: Taproot57%
CVE-2022-312462022-06-07Electrum 2.1 until before 4.2.2TheftSocial
CVE-2023-504282023All Bitcoin nodesDoS[3]EasyBypass of datacarriersize limit using OP_FALSE,OP_IF
CVE-2024-341492024-03-30Bitcoin Core 0.21.1 and newer (not fixed)
Bitcoin Knots 0.21.1 – 0.23.0
DoS[3]EasyScript size limit not enforced for Tapscript

Citations:
[1] https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
[2] https://www.linkedin.com/pulse/exposed-vulnerabilities-you-need-know-worlds-most-vicente-md
[3] https://www.mcafee.com/blogs/other-blogs/mcafee-labs/timeline-bitcoin-events-demonstrates-volatility/
[4] https://www.investopedia.com/news/largest-cryptocurrency-hacks-so-far-year/
[5] https://www.cyberdefensemagazine.com/bitcoin-blockchain-and-breaches/
[6] https://fortune.com/crypto/2023/11/17/early-bitcoin-wallets-flaw-hacker-vulnerability-exposed/
[7] https://www.chainalysis.com/blog/crypto-hacking-stolen-funds-2024/