The protocol expects users to mint RamNFT by calling Dussehra::enterPeopleWhoLikeRam and paying the entranceFee but anyone can mint RamNFT for free by calling the RamNFT::mintRamNFT function
The function RamNFT::mintRamNFT can be called by anyone to mint RamNFT for free
Anyone Can Mint RamNFT for free without Paying the entranceFee
Breaks the one RamNFT per address invariant i.e a user can mint two NFTs and become selectedRam by passing his tokenId's as args without worrying about randomness
A Malicious user can become selectedRam for Free and steal rewards
Manual Review
Foundry
The RamNFT::mintRamNFT function should only be called by the Dussehra contract which will mitigate the issue
make the following changes in RamNFT.sol
Declare a new Error error RamNFT__NotDussehraContract();
Declare a new State Variable address public dussehraContract;
Add a new Function
Add a new Modifier
In the RamNFT::mintRamNFT function
Note: Add this line to Dussehra.t.sol's setup for tests to work
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.