Location: contracts/src/TreasureHunt.sol:86
The claim function explicitly rejects recipient == msg.sender:
The protocol already binds the proof to the recipient as a public input, which prevents front-running. Blocking recipient == msg.sender does not add any security property: a finder who wants to pay themselves can simply create a second EOA, use that as the submitter, and sidestep the check. The net effect is worse UX.
Likelihood: High. Every legitimate single-wallet user hits this restriction on their first attempt.
Impact: Low. No fund loss; the friction pushes users toward relayers or second wallets.
Proof of Concept
Run:
The test passes, confirming the revert.
Remove the recipient == msg.sender
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.