Executive brief
libp2p is a networking stack library used to build peer-to-peer applications. In circuit-relay-v2 relay servers, a bug in reservation handling allows a remote attacker to send repeated RESERVE requests that cause unbounded memory growth through leaked event listeners, leading to relay server crashes and network service disruption.
Technical details
The vulnerability is a resource leak in the reservation refresh path within reservation-store.ts. The code reuses the same retimeableSignal object but unconditionally registers an additional abort listener on every refresh request, causing listeners and closures to accumulate without bound. A remote peer can exploit this by repeatedly sending valid RESERVE requests for the same reservation. No authentication or special privileges are required; the attack is network-accessible. The result is memory exhaustion and denial of service on circuit-relay-v2 relay servers. The vulnerability is fixed in version 4.2.9 by attaching the abort listener only once when the signal is created, rather than on every refresh.
Affected products
- libp2p circuit-relay-v2 before 4.2.9
Timeline
- 2026-08-24: disclosed
- 2026-07-19: patched: version 4.2.9 released