The Claimed event should emits recipient as the recipient.
The Claimed event emits msg.sender as the recipient instead of the actual recipient parameter
Likelihood:
Reason 1:Each seccessfull claim will emit a Claimedevent.
Impact:
Off-chain indexing services will incorrectly track who received the reward
The event data is misleading and doesn't reflect the actual recipient of funds
This breaks audit trails and makes it difficult to track legitimate claims
Whenever a claim succeeds, an event Claimedwith wrong recipient will be emitted.
Change line 111 to: emit Claimed(treasureHash, recipient);
Now, each Claimedwill emit correct recipient.
The event is declared as event `Claimed(bytes32 indexed treasureHash, address indexed recipient);`, which clearly indicates that the second indexed field is meant to represent the reward recipient, but `claim()` emits `Claimed(treasureHash, msg.sender)` instead of `Claimed(treasureHash, recipient)`, even though the ETH transfer is sent to recipient and the proof itself is constructed around the public inputs (treasureHash, recipient). As a standalone finding, this is appropriately low severity because it is fundamentally an event/accounting inconsistency rather than a direct loss-of-funds issue: the core state transition and payout still follow the intended recipient, but off-chain consumers reading the event log will observe incorrect metadata about who was associated with the claim.
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.