When there is no
bidder in the auctionContract then auctionToken is transferred to factoryContract
instead of real owner
Only owner can create auction using auctionFactory:createAuction(), after transferring amount of auctionToken
to auctionContract. Also owner
of auctionContract is set to msg.sender
in constructor, which is factoryContract
because it was factoryContract who deploys
the auctionContract.
When an auction ends and if there is no bidder then auctionToken
is transferred to owner
of the auctionContract
owner
of auctionContract is factoryContract
(which sets in constructor). As result, auctionTokens are transferred to factoryContract.
Now the problem is, there is no withdraw
method in factoryContract, from where owner can withdraw those tokens. As result, those auctionTokens will stuck
in factoryContract forever.
//Here is PoC
Run this test in auction.t.sol
auctionTokens will be stuck in factoryContract when there is no bidder as there is no way to withdraw it
Manual Review
While creating
auction in factoryContract, send
address on owner and use that owner address in constructor of auctionContract
instead of msg.sender
An auction with 0 bids will get the `totalTokens` stuck inside the contract. Impact: High - Tokens are forever lost Likelihood - Low - Super small chances of happening, but not impossible
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.