#42752 [BC-High] Signer can be DOSed through their libp2p component
Description
Brief/Intro
Vulnerability Details
async fn run_libp2p_swarm(ctx: impl Context) -> Result<(), Error> {
tracing::info!("initializing the p2p network");
// Build the swarm.
tracing::debug!("building the libp2p swarm");
let config = ctx.config();
let enable_quic = config.signer.p2p.is_quic_used();
let mut swarm = SignerSwarmBuilder::new(&config.signer.private_key)
.add_listen_endpoints(&ctx.config().signer.p2p.listen_on)
.add_seed_addrs(&ctx.config().signer.p2p.seeds)
.add_external_addresses(&ctx.config().signer.p2p.public_endpoints)
.enable_mdns(config.signer.p2p.enable_mdns)
.enable_quic_transport(enable_quic)
.build()?;
// Start the libp2p swarm. This will run until either the shutdown signal is
// received, or an unrecoverable error has occurred.
tracing::info!("starting the libp2p swarm");
swarm
.start(&ctx)
.in_current_span()
.await
.map_err(Error::SignerSwarm)
}Impact Details
Recommendations
References
Proof of Concept
Proof of Concept
Previous#42750 [BC-Insight] Subtraction overflow risk in WSTS FIRE coordinatorNext#42764 [BC-Low] A BTC wallet on signer blocklists can cause network DoS
Was this helpful?