The contract is vulnerable to reentrancy attacks due to the use of the call method for transferring Ether in both the selectWinner and refund functions. The call method forwards all available gas, which can be exploited by a malicious contract to re-enter the contract:
In selectWinner:
In refund:
Disruption of Contract Functionality: Reentrancy attacks can disrupt the normal flow of the contract, impacting its functionality and reliability.
Loss of User Trust: Such vulnerabilities can lead to significant financial losses for users and damage the reputation of the contract creators.
Employ Reentrancy Guard Mechanisms: Implement a reentrancy guard by using modifiers that prevent re-entrant calls.
reentrancy in refund() function
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.