The receive function is normally used to accept and to handle the transaction correctly regarding the purpose of the contract.
A normal transaction reverts if this function is not implemented
A player can mistakenly call the contract via the receive function to claim the throne, perhaps thinking that this is the correct process
In the Game contract, the receive function is only declared, but don't redirect the call to the claimThrone
All funds that are sent through this function will be lost forever, since no prevention was implemented to transfer the total balance of the contract.
Likelihood:
Whenever a player send ethers trough direct transaction.
Impact:
Loss of funds of the player
In this PoC, we tested that a transaction is accepted by the contract without giving the thone to the player.
In order to fix the issue, we need to make the claimThrone function public. Otherwise, we can't call it and propagate the key information (msg.value, msg.sender, ...)
There is no reason for a user to directly send ETH or anything to this contract. Basic user mistake, info, invalid according to CH Docs.
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.