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.