Skip to content

Commit

Permalink
addrman: change nid_type from int to int64_t
Browse files Browse the repository at this point in the history
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.

Github-Pull: bitcoin#30568
Rebased-From: 051ba32
  • Loading branch information
mzumsande authored and fanquake committed Nov 4, 2024
1 parent 1d0411d commit 4c1d74b
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/addrman_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,12 @@ static constexpr int ADDRMAN_NEW_BUCKET_COUNT{1 << ADDRMAN_NEW_BUCKET_COUNT_LOG2
static constexpr int32_t ADDRMAN_BUCKET_SIZE_LOG2{6};
static constexpr int ADDRMAN_BUCKET_SIZE{1 << ADDRMAN_BUCKET_SIZE_LOG2};

/** User-defined type for the internally used nIds */
using nid_type = int;
/**
* User-defined type for the internally used nIds
* This used to be int, making it feasible for attackers to cause an overflow,
* see https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/
*/
using nid_type = int64_t;

/**
* Extended statistics about a CAddress
Expand Down

0 comments on commit 4c1d74b

Please sign in to comment.