#41255 [BC-Medium] Blocking sleep in async context leads to thread pool exhaustion and DoS
Description
Brief/Intro
Vulnerability Details
32: /// Creates an http2 connection to the light node service.
33: pub async fn try_http2(connection_string: &str) -> Result<Self, anyhow::Error> {
34: for _ in 0..5 {
35: match http2::Http2::connect(connection_string).await {
36: Ok(result) => return Ok(Self::Http2(result)),
37: Err(err) => {
38: tracing::warn!("DA Http2 connection failed: {}. Retrying in 5s...", err);
39: std::thread::sleep(std::time::Duration::from_secs(5)); ❌
40: }
41: }
42: }
43: return Err(
44: anyhow::anyhow!("Error DA Http2 connection failed more than 5 time aborting.",),
45: );
46: }Fix
Impact Details
References
Proof of Concept
Proof of Concept
Previous#41235 [BC-Insight] Incorrect celestia bridge keyring flag causes network partition in data availability layerNext#41243 [BC-Insight] The mempool garbage collector doesn't fully execute garbage collection on each iteration
Was this helpful?