#38460 [BC-Low] The coordinator can set a higher BTC tx fee than the current network to make users t
Description
Brief/Intro
Vulnerability Details
pub async fn construct_package_sighashes<C>(
&self,
ctx: &C,
btc_ctx: &BitcoinTxContext,
) -> Result<Vec<BitcoinTxValidationData>, Error>
where
C: Context + Send + Sync,
{
let cache = self.fetch_all_reports(&ctx.get_storage(), btc_ctx).await?;
self.pre_validation(ctx, &cache).await?;
let signer_utxo = ctx
.get_storage()
.get_signer_utxo(&btc_ctx.chain_tip)
.await?
.ok_or(Error::MissingSignerUtxo)?;
let mut signer_state = SignerBtcState {
fee_rate: self.fee_rate,
utxo: signer_utxo,
public_key: bitcoin::XOnlyPublicKey::from(btc_ctx.aggregate_key),
last_fees: self.last_fees,
magic_bytes: [b'T', b'3'], //TODO(#472): Use the correct magic bytes.
};
let mut outputs = Vec::new();
for requests in self.request_package.iter() {
let (output, new_signer_state) = self
.construct_tx_sighashes(ctx, btc_ctx, requests, signer_state, &cache)
.await?;
signer_state = new_signer_state;
outputs.push(output);
}
Ok(outputs)
}Fix
Impact Details
References
Proof of Concept
Proof of Concept
Previous#38477 [BC-High] A single signer can abort every attempted signing round by providing an invalid pacNext#37384 [BC-Medium] Attacker can front-run call to emily api with incorrect data, preventing legit us
Last updated
Was this helpful?