The vault’s business logic expects users to interact through bespoke flows (deposit, joinEvent, cancelParticipation, withdraw) so that stakes, fees, participant lists, and winner-share accounting remain consistent.
Because BriVault inherits OpenZeppelin’s ERC4626, the public methods mint(shares, receiver) and redeem(shares, receiver, owner) are exposed and not overridden or gated. A user can call them directly to mint shares or redeem assets while bypassing participation fees, stakedAsset tracking, usersAddress/numberOfParticipants, and any event constraints. This breaks the vault’s internal accounting and lets users enter/exit positions outside the intended rules.
Likelihood: High
Wallets/UIs and savvy users commonly discover and use direct ERC4626 routes.
Since these functions are public and documented, this will occur during normal interaction, especially when gas‑optimizing or testing.
Impact: High
Fee bypass & accounting corruption: Users mint shares without paying the participation fee or updating stakedAsset, and redeem assets without respecting eventStartDate/eventEndDate, winnerSet, or didNotWin constraints—leading to economic leakage and broken tournament rules.
DoS / state inconsistency: Because mint/redeem don’t update usersAddress, totalParticipantShares, or per‑country aggregates, finalization math can be wrong, causing skewed payouts or failures.
Copy below tests to the `briVault.t.sol`
Lock down ERC4626 public routes.
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.