#42557 [BC-Low] Remote signing methods can fail which will turn off the light node block proposer
Description
Brief/Intro
Vulnerability Details
#[async_trait::async_trait]
impl Load<Secp256k1> for SignerIdentifier {
async fn load(&self) -> Result<LoadedSigner<Secp256k1>, LoaderError> {
info!("loading a secp256k1 signer {:?}", self);
match self {
SignerIdentifier::Local(local) => {
let signer = movement_signer_local::signer::LocalSigner::from_signing_key_hex(
&local.private_key_hex_bytes,
)
.map_err(|e| LoaderError::InvalidSigner(e.into()))?;
Ok(LoadedSigner::new(
Arc::new(signer) as Arc<dyn Signing<Secp256k1> + Send + Sync>,
self.clone(),
))
}
SignerIdentifier::AwsKms(aws_kms) => {
let builder =
movement_signer_aws_kms::hsm::key::Builder::new().create_key(aws_kms.create);
let key = aws_kms.key.clone();
let signer =
builder.build(key).await.map_err(|e| LoaderError::InvalidSigner(e.into()))?;
Ok(LoadedSigner::new(
Arc::new(signer) as Arc<dyn Signing<Secp256k1> + Send + Sync>,
self.clone(),
))
}
SignerIdentifier::HashiCorpVault(_hashi_corp_vault) => Err(LoaderError::InvalidCurve),
}
}
}Impact Details
References
Proof of Concept
Proof of Concept
Previous#42535 [BC-High] Garbage collecting in flight transactions can lead to spiraling network delaysNext#42648 [BC-High] Altering the application_priority to fill a block, temporary freezing user transactions
Was this helpful?