#42750 [BC-Insight] Subtraction overflow risk in WSTS FIRE coordinator
Description
Brief/Intro
Vulnerability Details
let num_malicious_keys: u32 = self
.malicious_signer_ids
.iter()
.map(|signer_id| self.config.signer_key_ids[signer_id].len() as u32)
.sum();
if self.config.num_keys - num_malicious_keys < self.config.threshold { // <--- subtraction overflow risk
error!("Insufficient non-malicious signers, unable to continue");
let mal = self.malicious_signer_ids.iter().copied().collect();
return Ok((
None,
Some(OperationResult::SignError(
SignError::InsufficientSigners(mal),
)),
));
}Impact Details
References
Proof of Concept
Previous#42747 [BC-High] Large BTC transactions with many sbtc deposits can permanently crash/halt all signersNext#42752 [BC-High] Signer can be DOSed through their libp2p component
Was this helpful?