liquidate() does not check user != msg.sender. A user can liquidate their own position and pocket the 10% liquidation bonus, extracting value from the protocol's collateral pool at the expense of all other DSC holders.
The bonus comes from the user's own collateral, but the DSC burned reduces total supply while the extra 10% collateral is returned. This means the remaining DSC in circulation is backed by less collateral than before.
Likelihood:
Any user whose HF falls below 1e18 can do this. No special setup needed beyond being undercollateralized.
Rational actors will self-liquidate rather than let an external liquidator take the bonus.
Impact:
Each self-liquidation extracts 10% of the covered debt value from the protocol's collateral backing.
The collateral-to-DSC backing ratio decreases for all remaining DSC holders.
At scale, repeated self-liquidations erode protocol solvency.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.