Lack of validation checks for burned or transferred NFTs in the ChoosingRam contract may lead to incorrect selection of Ram.
The ChoosingRam
contract does not validate whether an NFT has been burned or transferred to another owner before executing critical functions. Specifically, the functions ChoosingRam::increaseValuesOfParticipants and ChoosingRam::selectRamIfNotSelected rely on the characteristics of the NFTs without verifying their current existence or ownership status.
No Check for Burned Tokens in the ChoosingRam::increaseValuesOfParticipants
: The contract does not ensure that the tokenId in question is still valid and hasn't been burned.
No Check for Current Ownership in the ChoosingRam::selectRamIfNotSelected
: The contract does not verify if the Ram is still the current owner of the token before selecting it as Ram.
Incorrect Ram Selection: If an NFT has been burned or transferred, selecting it as the Ram could lead to selecting an invalid address or an incorrect participant, undermining the integrity of the selection process.
Loss of Funds: An invalid Ram selection can disrupt the distribution of funds, potentially causing financial losses to participants.
Manual Code Review
Add checks such as
and
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.