The LiquidationPool::distributeAssets function, being external and accepting arbitrary ILiquidationPoolManager.Asset arguments without proper verification, exposes a vulnerability. Any user can potentially frontrun distributeAssets by providing an arbitrary assets array, linked to a malicious oracle or setting _hundredPC = 0 to distribute all liquidated assets for free to stakers.
See PoC below for a concrete example.
Loss of funds for the protocol
EUROs stablecoin total supply may increase (inflation).
Since only the LiquidationPoolManager uses LiquidationPool::distributeAssets and can provide the correct parameters, add the onlyManager modifier.
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.