#37814 [BC-High] Signers can crash other signers by sending an invalid `DkgPrivateShares` due to mis
Description
Summary
Finding Description
WstsNetMessage::DkgPrivateShares(dkg_private_shares) => {
tracing::info!(
signer_id = %dkg_private_shares.signer_id,
"handling DkgPrivateShares"
);
let public_keys = match self.wsts_state_machines.get(&msg.txid) {
Some(state_machine) => &state_machine.public_keys,
None => return Err(Error::MissingStateMachine),
};
let signer_public_key = match public_keys.signers.get(&dkg_private_shares.signer_id)
{
Some(key) => PublicKey::from(key),
None => return Err(Error::MissingPublicKey),
};
if signer_public_key != msg_public_key {
return Err(Error::InvalidSignature);
}
self.relay_message(msg.txid, &msg.inner, bitcoin_chain_tip)
.await?;
}Impact
Mitigation
Proof of Concept
PoC
Previous#38582 [BC-High] The `BitcoinCoreClient::get_tx_info` does not support coinbase transactions, whichNext#37777 [BC-Medium] `Emily.create_deposit` can overwrite any deposit to the Pending state
Last updated
Was this helpful?