The EggstravaganzaNFT
contract's functionality is contingent on proper initialisation of the gameContract
address via setGameContract
. If the owner fails to execute this function, the protocol becomes permanently non-functional as the mintEgg
method remains inaccessible. While not directly exploitable, this represents a critical deployment failure vector.
Affected Code:
Technical Analysis:
Uninitialised State Risk:
The gameContract
state variable defaults to address(0)
The setGameContract
function is the only way to configure this critical parameter
No initialisation occurs in the constructor
Protocol Bricking Scenario:
If owner neglects to call setGameContract
after deployment
mintEgg
becomes permanently unreachable
Entire game functionality is paralysed as no NFTs can be minted
Key Constraints:
Represents a single point of failure in protocol initialisation
Severity: High
Protocol-Wide Failure: Renders core game mechanics permanently inoperable
Irreversible Damage: Requires contract redeployment if initialisation is missed
Likelihood: Medium
Depends on human operational processes during deployment
Common in rushed deployments without proper verification
Manual code analysis of initialisation flows
Constructor Initialisation:
Remove Owner Dependency:
Delete the setGameContract
function entirely to prevent post-deployment misconfiguration
Owner is trusted and is not expected to interact in ways that would compromise security
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.