DSC.burn_from Allows Debt to Be Erased Without Token DestructionWhen DSC is burned — either directly or as part of a redemption or liquidation — the engine decrements the user's recorded debt and calls DSC.burn_from to destroy the tokens.
The return value of DSC.burn_from is not checked. If the burn fails silently, the protocol decrements the debt record as though the burn succeeded, allowing a user to eliminate their debt while retaining their DSC tokens.
Likelihood:
The burn_from call fails due to insufficient allowance or a DSC token-level access control check — debt is erased but tokens remain in circulation.
A liquidator calls liquidate using a dsc_from address that has not approved the engine to spend its DSC — the burn fails silently, the target user's debt is cleared, and the liquidator keeps their DSC.
Impact:
A user's debt is wiped from the ledger without destroying the corresponding DSC tokens, inflating the circulating supply relative to collateral — breaking the USD peg.
A malicious actor can engineer a failed burn to free their collateral while retaining both the collateral and the DSC, draining the protocol.
A malicious actor can setup the failed brn on purpose and free the collateral without destroying the DSC causing unbacked DSC tokens in circulation and breaking the USD peg.
Capture and assert the return value of the burn call:
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.