Both BidBeastsNFTMarketPlace.sol and BidBeasts_NFT_ERC721.sol inherit from OpenZeppelin’s Ownable, but initializes it incorrectly. In modern OpenZeppelin contracts (v5.x), the Ownable constructor does not accept parameters. Passing msg.sender to Ownable like this is invalid and may cause the contract to:
Fail to compile on newer OZ versions.
Or, if using an older fork, incorrectly assign ownership in a way not intended by the developer.
This breaks critical access control, since functions like withdrawFee() rely on onlyOwner. If ownership is not properly set, the marketplace may be permanently locked and fees cannot be withdrawn.
Likelihood:
High – contract will either fail at compile time or misassign ownership on deployment.
Impact:
Permanent lockout of fee withdrawal (platform admin cannot access accumulated fees).
Access control assumptions across the contract become unreliable.
Correct ownership initialization to align with OpenZeppelin’s standards and intended control model.
The same pattern applies to BidBeasts_NFT_ERC721.sol:
Benefits of Mitigation
Restores correct ownership assignment.
Guarantees only authorized parties can execute onlyOwner functions.
Prevents permanent lockout of administrative functions and revenue streams.
Preserves marketplace and NFT contract trust.
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.