Attackathon _ Fuel Network 32439 - [Smart Contract - Low] Missing Alignment Check During AbstractIns
Description
Brief/Intro
Vulnerability Details
VirtualOp::SW(addr_reg, src, imm) => match reg_contents.get(addr_reg) {
Some(RegContents::BaseOffset(base_reg, offset))
if get_def_version(&latest_version, &base_reg.reg) == base_reg.ver
&& ((offset / 8) + imm.value as u64)
< compiler_constants::TWELVE_BITS =>
{
let new_imm = VirtualImmediate12::new_unchecked(
(offset / 8) + imm.value as u64,
"Immediate offset too big for SW",
);
let new_sw = VirtualOp::SW(base_reg.reg.clone(), src.clone(), new_imm);
// Replace the SW with a new one in-place.
*op = new_sw;
}
_ => (),
},Impact Details
References
Proof of concept
Proof of Concept
PreviousAttackathon _ Fuel Network 32438 - [Smart Contract - Low] Unhandled Bailout During AbstractInstructiNextAttackathon _ Fuel Network 32453 - [Smart Contract - Low] Unhandled Side Effect During AbstractInstr
Last updated
Was this helpful?