Description:
LiquidationPoolManager::distributeFees()
is called periodically to distribute fees to network stakers and the protocol treasury. The treasury's share is sent using the ERC20::transfer
function. However, the return value of an external transfer call in distributeFee()
is not checked.
Impact:
If the transaction fails, it fails silently, causing the protocol to miss out on its share of the reward. The next distributeFees()
call shares all the fees in the pool between both groups.
Tools Used:
Slither
Recommended Mitigation Steps:
Use SafeERC20
, or ensure that the transfer
return value is checked.
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.