75437 bc medium jovian min base fee omission lets consolidation promote a non canonical unsafe block as safe
Description
Brief/Intro
Vulnerability Details
Jovian extra_data has three fields
// crates/common/consensus/src/extra/jovian.rs:26-41
pub fn decode(extra_data: &[u8]) -> Result<(u32, u32, u64), EIP1559ParamError> {
if extra_data.len() != 17 {
return Err(EIP1559ParamError::InvalidExtraDataLength);
}
if extra_data[0] != VERSION_BYTE {
return Err(EIP1559ParamError::InvalidVersion(extra_data[0]));
}
let denominator: [u8; 4] = extra_data[1..5].try_into().expect("sufficient length");
let elasticity: [u8; 4] = extra_data[5..9].try_into().expect("sufficient length");
let min_base_fee: [u8; 8] = extra_data[9..17].try_into().expect("sufficient length");
Ok((
u32::from_be_bytes(elasticity),
u32::from_be_bytes(denominator),
u64::from_be_bytes(min_base_fee),
))
}Root cause - consolidation discards min_base_fee
Safe-head promotion path
The wrong header can affect later derivation
Impact Details
Link to Proof of Concept
Proof of Concept
Mitigation
Previous74891 bc insight txpool admission omits operator fee solvencyNext75972 bc medium zk range proofs can stop at endofsource but still commit the requested target block allowing a short range proof to finalize an invalid longer range output root
Was this helpful?