Bitcoin’s core development team published an update to the bitcoin client this week. Version 0.8.4 provides protection against some core DDoS attacks, and also fixes security bugs introduced during the last patch.
The patch fixes an attack that could crash a process in the part of the bitcoin client that dealt with Bloom Filters. These are data structures used to decide whether a piece of data is a member of a larger data set, and were introduced in version 0.8 of the client so that only the relevant transactions would be sent to lightweight clients.
They are therefore a key feature in bitcoin going forward, as the size of the block chain increases. In versions 0.8.0 through 0.8.3 of Bitcoin-QT and Bitcoind, an attacker could send a series of messages to the Bloom Filter that would cause it to crash. The core devs call this a “critical denial-of-service attack”.
The update also fixed a security bug that was introduced when the core developers patched another flaw in version 0.8.3. That patch implemented a better fix for a flaw that enabled attackers to fill system memory with flawed transactions. The flaw was originally fixed in version 0.8.3, but that fix in turn introduced two other flaws, according to blogger and crypto expert Sergio Lerner.
“What worries me is not that a bug was found, nor that a bug in the patch was found, but that the github commit of the patch does not show a history of a discussion regarding the patch correctness, nor is it recorded if the code was audited and by whom,” said Lerner at the time, arguing that the process for treating sensitive patches should be corrected.
Members of the dev team didn't respond to questions about development and patch documentation and process yesterday.
Bitcoin suffered a denial of service attack targeting network nodes as recently as June.