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.