Location: contracts/src/TreasureHunt.sol:276
The emergency withdraw function explicitly blocks sending back to the owner:
An emergency typically means the owner wants to move funds to a safer wallet they directly control. Blocking the owner as recipient forces them to use a third address, which is precisely the wrong UX in a real emergency.
Likelihood: Low. only triggered during an emergency withdraw attempt.
Impact: Low. Friction in emergency recovery; owner may have to deploy a temporary receiving contract or use another EOA, costing time during an active incident.
Run:
The test passes, the owner is blocked from rescuing funds to their own address.
Remove the recipient != owner restriction:
The issue is that the emergency withdrawal mechanism unnecessarily forbids the owner from selecting their own address as the recipient, even though `emergencyWithdraw()` is already restricted to the owner, only callable while the contract is paused, and is explicitly described as an emergency recovery path. That makes recovery more cumbersome by forcing an owner to route funds through a secondary wallet during the very scenario where operational simplicity is most important.
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.