Attackathon _ Fuel Network 32271 - [Blockchain_DLT - Medium] Incorrect state range access helper
Description
Brief/Intro
Vulnerability Details
fn contract_state_range(
&self,
contract_id: &ContractId,
start_key: &Bytes32,
range: usize,
) -> Result<Vec<Option<Cow<ContractsStateData>>>, Self::DataError> {
use crate::StorageAsRef;
let mut key = U256::from_big_endian(start_key.as_ref());
let mut state_key = Bytes32::zeroed();
let mut results = Vec::new();
for _ in 0..range {
key.to_big_endian(state_key.as_mut());
let multikey = ContractsStateKey::new(contract_id, &state_key);
results.push(self.database.storage::<ContractsState>().get(&multikey)?);
key.increase()?;
}
Ok(results)
}Impact Details
References
Proof of concept
Proof of Concept
PreviousAttackathon _ Fuel Network 32270 - [Smart Contract - Low] Inappropriate fuel dce on side affectsNextAttackathon _ Fuel Network 32275 - [Smart Contract - Medium] Various Sway Libs Bugs
Last updated
Was this helpful?