address(0)The constructor sets critical addresses (owner and usdc) without validating that inputs are non-zero.
If _owner is address(0), owner-only administrative functionality becomes permanently inaccessible. If _usdc is address(0), ERC20 interactions (mint/list/buy/settlement flows) are misconfigured and can revert or behave unexpectedly.
Likelihood:
The issue occurs at deployment time when constructor arguments are supplied.
Deployment scripts and manual deployments are common sources of parameter mistakes.
Impact:
owner = address(0) can permanently lock admin operations (onlyOwner).
usdc = address(0) breaks core protocol token flows and can render the system unusable.
Deploy with _owner = address(0).
Call any onlyOwner function (e.g., revealCollection()) from a regular account.
Call reverts forever because no EOA can satisfy owner == msg.sender.
Alternative:
Deploy with _usdc = address(0).
Call mintNft() or buy().
ERC20 call path is invalid due to a zero token address, causing core flows to fail.
Validate constructor inputs and revert on zero addresses.
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.
The contest is complete and the rewards are being distributed.