Similar to the mint issue, the _burn_dsc() function calls extcall DSC.burn_from() without checking the return value. The comment again acknowledges "Note, we are not checking success here".
When the burn fails silently, the user's debt is decreased in the protocol's accounting, but the DSC tokens are never actually burned, allowing users to effectively clear their debt for free and withdraw collateral while keeping the DSC tokens.
Likelihood: Medium
Reason 1 // Depends on DSC token implementation behavior
Reason 2 // Could be exploited if burn_from returns false instead of reverting
Impact: Critical
Impact 1 // Users can clear debt without burning tokens
Impact 2 // Free collateral extraction
Impact 3 // Protocol becomes insolvent
Impact 4 // DSC loses its peg as unbacked tokens circulate
The following scenario shows how an attacker can exploit silent burn failures to extract collateral while keeping their DSC tokens. This creates unbacked DSC in circulation and drains the protocol of collateral, leading to complete insolvency.
Check the return value of the burn_from call and revert if it fails. This ensures the debt reduction only occurs when tokens are actually burned, maintaining protocol solvency and correct accounting.
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.