Post
Topic
Board Development & Technical Discussion
Merits 10 from 4 users
Bogus locator in getheaders (test data wanted)
by
Coinr8d
on 17/07/2018, 07:03:55 UTC
⭐ Merited by theymos (6) ,gmaxwell (2) ,qwk (1) ,ETFbitcoin (1)
I'm trying to understand the getheaders protocol message and how bitcoin core operates when it receives one. FindForkInGlobalIndex is being called when the locator is present the message. This message seems to go through all hashes inside of the locator and make a hash table look up to see if we know the hash.

In the seem to me that an attacker can send us this protocol message with bogus hashes and the only limit I can see is the peer to peer network protocol message size limit of 4,000,000 bytes. This translates to roughly 125,000 hashes inside of the locator.

Therefore it seems that it is possible for the attacker to make us perform that many hash table look up operations while holding cs_main lock.

Is this really possible or am I missing something? If it is possible, is it not a denial service vector?