DaiGoldAuction.startAuction()
can be DoSed by anyone calling DaiGoldAuction.distributeGold()
before the auction starter calls DaiGoldAuction.startAuction()
When the auction starter calls DaiGoldAuction.startAuction()
, the _distributeGold()
internal function will call the templeGold.mint()
to mint new $TGLD
tokes to be distributed, where this function enforces a minimum mint amount to be distributed, otherwise the txn will revert:
where the minimum mint amount is first calculated based on the time elapsed from the last call to the mint()
function:
and:
So if the mint()
function is called frequently; the minmtAmount
will be less than the the MINIMUM_MINT
, and the _canDistribute(mintAmount)
will return false
resulting in reverting the transaction.
And as can be noticed; DoSing auction starting can be done by anyone as
the DaiGoldAuction
contract has an external distributeGold()
function that can be invoked by anyone:
Also the TempleGold.mint()
function can be accessed by anyone, resulting in DoSing DaiGoldAuction.startAuction()
function:
Same issue is detected in TempleGoldStaking
contract, where malicious actor can postpone (DoS) rewards distribution of an epoch by DoSing TempleGoldStaking.distributeRewards()
function when calling TempleGoldStaking.distributeGold()
frequently.
DoSing DaiGoldAuction.startAuction()
function.
Manual Review.
Update TempleGold.mint()
function to be called by the DaiGoldAuction
contract(& TempleGoldStaking
contract) and privalaged accounts only.
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.