Flow

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

Protocol Instability

Summary

in SablierFlowBase::collectProtocolRevenue, there is no assert to maintain the aggregateBalance[token]. With aggregateBalance[token] in an incorrect state, calculations and checks that rely on its accuracy may fail, leading to unexpected behavior in other parts of the contract.

Vulnerability Details

unchecked {
// Effect: update the aggregate balance.
aggregateBalance[token] -= revenue;
}

Impact

Functions that interact with the balance might assume there are sufficient funds when there aren’t, potentially destabilizing the protocol. Attackers could exploit this misrepresented balance to withdraw funds beyond the actual available balance, resulting in financial losses for the protocol.

Tools Used

Manual Review

Recommendations

Assert that the aggregate balance does not fall below protocol revenue.

unchecked {
// Effect: update the aggregate balance.
aggregateBalance[token] -= revenue;
+ assert(aggregateBalance[token] >= protocolRevenue[token]);
}
Updates

Lead Judging Commences

inallhonesty Lead Judge
11 months ago
inallhonesty Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

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