The batch()
function allows manipulation of calldata in delegatecall operations, enabling potential malicious function calls within the contract's context.
Location: src/abstracts/Batch.sol:15-23
The vulnerability allows attackers to:
Provide maliciously crafted calldata to execute arbitrary functions
Access privileged functionality through delegatecall execution
Manipulate contract state within allowed function scopes
Severity: Medium
Potential execution of unintended functions via crafted calldata
Limited to functions already present in contract
Risk mitigated by delegatecall scope restrictions
Slither .
Impact: Medium
Confidence: Medium
[ ] ID-3
Manipulated call found: (success,result) = address(this).delegatecall(calls[i]) in Batch.batch(bytes[])
Only the calldata could be manipulated
The calldata could be manipulated through Batch.batch(bytes[])
src/abstracts/Batch.sol#L19-L20
Manual review
1.Implement function selector validation:
2.Add access controls to restrict batch execution
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.