Misleading require statement in selectWinner()
The check 'require(players.length >= 4, "PuppyRaffle: Need at least 4 players")' does not take into account that the 'players' array could be filled with address(0) values only.
The function logic could proceed assuming there are active players while there are none.
Manual review
The actual culprit is the 'refund' function. It simply must be removed. However if the issue is to be fixed locally, it must be checked that there are at least 4 non-zero addresses.
Funds are locked to no one. If someone gets the refund issue, they also got this issue. IMPACT: High Likelihood: High
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.