HexBrain

Coinbase · Report #106315

Potential for Double Spend via Sign Message Utility

Informativestatus
6 Jan 2016disclosed

How it was found

Hi,

There is an unlikely (but theoretically exploitable vulnerability) is caused by allowing users to sign messages with their addresses. So far I have not been able to exploit this, but I believe that it is exploitable.

On coinbse.com, the user can see a list of their addresses here. When they click on an address, they get the option to "Sign a message".

An attacker could create a raw transaction (explanation of how to do so is here) spending from one of the addresses listed there to an attacker controlled address. The attacker would then sign the raw transaction so that it is ready to be sent out to the entire network. Then the attacker would send some amount of bitcoin to Coinbase (a predetermined amount to a predetermined address). Shortly after sending the bitcoin to Coinbase, the attacker would then relay his signed transaction to send the bitcoin to his own privately held address.

The end outcome of this is that Coinbase believes they have received some amount of Bitcoin (and it had a number of confirmations in an address controlled by Coinbase), but in reality they lost it since the attacker stole it before Coinbase could transfer it elsewhere.

Realistically, I'm not sure whether this can be practically exploited. None the less, I would recommend adding some sort of parsing code to the "Sign a message" utility so that it will refuse to sign a transaction.

Thanks, David Dworken

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original