Skip to content

Commit 6957ec9

Browse files
committed
Merge #1127: Add security advisory for remaining CVE-2024-52919 issue
680a254 Add security advisory for remaining CVE-2024-52919 issue (Antoine Poinsot) Pull request description: ACKs for top commit: glozow: reACK 680a254 Tree-SHA512: 9f454e872f3e12e32d5fdaa70d74cc8a6e529edd40b69797488f4bdc944e0200ce7645ef23d151ae681711fc0c50a362e52841eb2535003cbed225cca4a51acf
2 parents 130884f + 680a254 commit 6957ec9

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: CVE-2024-52919 - Remote crash due to addr message spam (part 2)
3+
name: blog-disclose-cve-2024-52919
4+
id: blog-disclose-cve-2024-52919
5+
lang: en
6+
type: advisory
7+
layout: post
8+
9+
## If this is a new post, reset this counter to 1.
10+
version: 1
11+
12+
## Only true if release announcement or security annoucement. English posts only
13+
announcement: 1
14+
15+
excerpt: >
16+
An attacker could crash a node by spamming it with `addr` messages for a very long time. A fix was released on April 14th 2025 in Bitcoin Core v29.0.
17+
---
18+
19+
Disclosure of the details of an integer overflow bug which causes a crash if a node is getting
20+
spammed `addr` messages continuously for a very long time (years). A fix was released on April 14th
21+
2025 in Bitcoin Core v29.0.
22+
23+
This issue is considered **Low** severity.
24+
25+
## Details
26+
27+
The address manager in Bitcoin Core uses a 32-bit identifier for each entry, incremented on every
28+
insertion. An [earlier security
29+
advisory](https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow) explained how it
30+
enabled an attacker to remotely trigger an assertion failure by spamming a node with `addr` messages
31+
until the 32-bit identifier overflow.
32+
33+
This was partially addressed in Bitcoin Core v22.0 by rate-limiting insertions in the address
34+
manager to 1 address per peer every 10 seconds. This made the attack a lot more expensive if not
35+
impractical: even with 1000 peers continuously attacking it would still take more than a year to get
36+
the 32-bit identifier to overflow.
37+
38+
The remaining, more expensive attack vector was addressed in Bitcoin Core version 29.0 by making the
39+
identifier a 64-bit identifier.
40+
41+
## Attribution
42+
43+
Credit goes to Eugene Siegel for discovering and disclosing the vulnerability, and to Martin
44+
Zumsande for changing the identifier to 64-bit.
45+
46+
## Timeline
47+
48+
* 2021-06-21 - Initial report sent to [email protected] by Eugene Siegel
49+
* 2021-07-19 - Rate limiting is merged in PR [#22387](https://github.com/bitcoin/bitcoin/pull/22387)
50+
* 2021-09-13 - v22.0 is released with rate-limiting
51+
* 2024-07-31 - Publication of the [first security advisory](https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow)
52+
* 2024-09-20 - Change to 64-bit identifer is merged in PR [#30568](https://github.com/bitcoin/bitcoin/pull/30568)
53+
* 2025-04-14 - Bitcoin Core v29.0 is released with the 64-bit identifier
54+
* 2025-04-28 - Public Disclosure
55+
56+
{% include references.md %}

0 commit comments

Comments
 (0)