SEO-Optimized Article on Bitcoin Core Vulnerability
The discovery of an infinite loop bug in miniupnp’s dependency on Bitcoin Core and its subsequent fix in Bitcoin Core version v22.0 on September 14, 2021, has raised concerns within the cryptocurrency community.
Details of the Vulnerability
Miniupnp, the UPnP library utilized by Bitcoin Core, has a vulnerability that allows an attacker on the local network to exploit the system. The bug causes miniupnp to wait for discovery whenever it receives random data from a device on the network. Furthermore, it allocates memory for each new device information, making it susceptible to memory exhaustion attacks. By pretending to be a UPnP device, an attacker can flood Bitcoin Core nodes with bloated M-SEARCH replies, leading to a denial of service (DoS) attack.
Attribution and Resolution
The infinite loop bug was initially reported by Ronald Huveneers to the miniupnp project. Subsequently, Michael Ford (Fanquake) reported the issue to the Bitcoin Core project, providing a proof-of-concept vulnerability to trigger out-of-memory (OOM) errors. Ford also submitted a pull request to enhance dependencies and implement necessary fixes to address the vulnerability.
Timeline of Events
- 17-09-2020 – Ronald Huveneers reports the infinite loop bug to miniupnp
- October 13, 2020 – Preliminary report sent to security@bitcoincore.org by Michael Ford
- 23-03-2021 – Fixes merged into the codebase
- 13-09-2021 – Bitcoin Core version v22.0 released with the vulnerability patch
- July 31, 2024 – Public disclosure of the vulnerability to raise awareness