Skip to content

Commit e764601

Browse files
mzumsandestratospher
authored andcommitted
addrman: change nid_type from int to int64_t
With nId being incremented for each addr received, an attacker could cause an overflow in the past. (https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/) Even though that attack was made infeasible by rate-limiting (PR bitcoin#22387), to be on the safe side change the type to an int64_t.
1 parent 4da3f9f commit e764601

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/addrman_impl.h

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ static constexpr int ADDRMAN_NEW_BUCKET_COUNT{1 << ADDRMAN_NEW_BUCKET_COUNT_LOG2
3232
static constexpr int32_t ADDRMAN_BUCKET_SIZE_LOG2{6};
3333
static constexpr int ADDRMAN_BUCKET_SIZE{1 << ADDRMAN_BUCKET_SIZE_LOG2};
3434

35+
/**
36+
* User-defined type for the internally used nIds
37+
* This used to be int, making it feasible for attackers to cause an overflow,
38+
* see https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/
39+
*/
40+
using nid_type = int64_t;
41+
3542
/**
3643
* Extended statistics about a CAddress
3744
*/

0 commit comments

Comments
 (0)