Flow

Sablier
FoundryDeFi
20,000 USDC
View results
Submission Details
Severity: high
Invalid

Using delegatecall in loop Batch::batch

Summary

Vulnerability Details

When calling delegatecall the same msg.value amount will be accredited multiple times.

There's no explicit handling of msg.value.

Impact

Tools Used

Recommendations

adding a require above of loop

function batch(bytes[] calldata calls) external payable {
uint256 count = calls.length;
+ require(msg.value == 0, "Batch operation requires zero msg.value");
for (uint256 i = 0; i < count; ++i) {
(bool success, bytes memory result) = address(this).delegatecall(calls[i]);
if (!success) {
revert Errors.BatchError(result);
}
}
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 8 months ago
Submission Judgement Published
Invalidated
Reason: Lack of quality

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.