Normal behavior: Assets should be withdrawable only via the custom withdraw() after the event ends, and only by winners.
Issue: The contract inherits ERC4626 but does not override/disable its standard withdraw/redeem, allowing any share holder to exit at any time, ignoring the game rules.
Likelihood:
As soon as any shares exist, users will call the built-in ERC4626.withdraw/redeem directly during the event.
Wallets/tooling that understand ERC4626 expose these functions by default.
Impact:
Game economics collapse: losers (or anyone) can withdraw before/after end.
Vault can be drained outside the intended flow.
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.