State transition and consensus issue in geth client causes panic (crash) when processing a (valid) block with a specific combination of transactions, which may cause overall network instability if block is accepted and relayed by unaffected clients thus causing a DoS. This may happen in a block that contains transactions which suicide to the block reward address.

Affected configurations: Issue reported for Geth.While investigating the issue, related issues were discovered and corrected in pyethereum, hence pyethapp is also affected. C++ clients are unaffected.

Likelihood: Low

Severity: High

Complexity: High

Impact: Network Instability and DoS

Details: A block containing a specific combination of transactions which include one or more SUICIDE calls, while valid, causes panic crash in go-ethereum client and crash in pyethereum. Additional details may be posted when available.

Effects on expected chain reorganisation depth: None.

Remedial action taken by Ethereum: Provision of fixes as below.

Proposed temporary workaround: Switch to unaffected client such as eth (C++).

Fix:Upgrade geth and pyethereum client software.

go-ethereum (geth):

Please note that the current stable version of geth is now 1.1.1; if you are running 1.0 and using a package manager such as apt-get or homebrew the client will be upgraded.

If using the PPA: sudo apt-get update then sudo apt-get upgrade

If using brew: brew update then brew reinstall ethereum

If using a windows binary: download the updated binary.

If you are building from source: git pull followed by make geth (please use the Master branch commit 8f09242d7f527972acb1a8b2a61c9f55000e955d)

 

The correct version for this update on Ubuntu AND OSX is Geth/v1.1.1-8f09242d

pyethereum:

Users of pyethapp should reinstall

> pip install pyethapp --force-reinstall