Unbidded Auctions can not get closed because of not checking repossessor address.
Summary
Because of not checking the repossessor address when initializing the collection, or setting it, the Auction will be Unclosable, and The token can get locked in the contract.
Vulnerability Detail
If no one bids in the current round of the auction, the token is transferred to the repossessor address, but if this address can not receive the token, the auction can not be closed.
Missing address(0) check is categorized as a LOW issue, But in this case, the Impact is HIGH. where this will lead to preventing the token from completing its Period Auction cycle, which is the desire of the protocol.
And if the Collection is deployed without an owner, No one will be able to change the repossessor address.
Impact
Token getting locked in the Contract, if it was minted.
The periodic Auction Cycle Mechanism will stop for that token, and there will no be any future Auction rounds.
Al-Qa-qa
medium
Unbidded Auctions can not get closed because of not checking
repossessor
address.Summary
Because of not checking the
repossessor
address when initializing the collection, or setting it, the Auction will be Unclosable, and The token can get locked in the contract.Vulnerability Detail
If no one bids in the current round of the auction, the token is transferred to the
repossessor
address, but if this address can not receive the token, the auction can not be closed.auction/EnglishPeriodicAuctionInternal.sol#L526-L530
This function either transfers the token or mints it if it does not exist.
license/StewardLicenseInternal.sol#L96-L108
The problem is that if the receiver of the token is
address(0)
, mint/transfer the ERC721 token will revert.When setting the
repossessor
address, the function does not check if the address provided isaddress(0)
or not.auction/EnglishPeriodicAuctionInternal.sol#L88-L92
Missing
address(0)
check is categorized as aLOW
issue, But in this case, the Impact isHIGH
. where this will lead to preventing the token from completing its Period Auction cycle, which is the desire of the protocol.And if the Collection is deployed without an owner, No one will be able to change the
repossessor
address.Impact
Code Snippet
https://github.com/sherlock-audit/2024-02-radicalxchange/blob/main/pco-art/contracts/auction/EnglishPeriodicAuctionInternal.sol#L88-L92
Tool used
Manual Review
Recommendation
Check that the provided address is not
address(0)
.