LikeRegistry lack a reentrancy guardLikeRegistry makes external low-level ETH calls in matchRewards (line 65) and withdrawFees (line 78) without any nonReentrant guard. The current code follows checks-effects-interactions (state is zeroed before the call), so it is not exploitable today, but the unguarded low-level calls are fragile against future edits.
Likelihood: Low. With the present CEI ordering (userBalances/totalFees set to 0 before the external call) there is no live reentrancy path, so exploitation requires a future regression that moves state updates after the call.
Impact: Low (defense-in-depth). If a later change reordered effects after the call, an attacker-controlled recipient could reenter matchRewards/withdrawFees and drain balances. Adding nonReentrant removes that latent risk class entirely at negligible cost.
A guard would make a hostile re-entrant receiver revert; today the CEI ordering already prevents the drain, so this is a hardening test:
Inherit OpenZeppelin ReentrancyGuard and apply nonReentrant to the ETH-moving functions.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.