Bugs in the blockchain code
With almost every blockchain platform, public or private, the code is open sourced. This is because blockchains use the principles and techniques, and reuse parts of the code, which started the first blockchain. Bitcoin, for example, makes this a requirement. Also, making the code open source means that it can be trusted and no adverse/malicious things can be done with the data sent in a transaction. Because the code is still in its early stages of development, however, it may be subject to unknown security vulnerabilities. For example, the Ethereum smart contract language is relatively new, and it runs in a separate virtual machine. Thus, there may be zero-day attacks that hackers can exploit. Always keep your blockchain node(s) up-to-date and use the most recent software build of the code that is used by the majority of the network.