initialize checks minStake_ != 0 but places no upper bound. If set to type(uint256).max, every stake() call reverts with BelowMinStake because no token transfer can credibly reach that amount. The pool becomes permanently unusable for staking. This is an accidental footgun: a fat-fingered minStake value at pool creation permanently DOSes staking with no recovery path (there is no setter for minStake).
Likelihood: Low — requires the pool owner to pass an absurd minStake value at creation. Under the trust model, the owner would not intentionally shoot themselves.
Impact: Low — staking is permanently blocked; the pool becomes a bonus-only vessel. No funds are stolen.
File: L13-MinStake-NoUpperBound.poc.t.sol
Run: forge test --match-path 'L13-MinStake-NoUpperBound.poc.t.sol' -vv
Add a reasonable upper bound on minStake:
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.