RamNFT::mintRamNFT function is declared with public visibility, allowing anyone (including external users or contracts) to call the function. As per the specs, the Dussehra contract should be allowed to mint Ram NFTs through RamNFT::mintRamNFT.
It is possible for outside user or another contract to call the RamNFT::mintRamNFT function, without paying the fee as the protocol intended (by minting NFT from Dussehra::enterPeopleWhoLikeRam). This enables users, that entered the protocol via this function, to get picked for Ram and participate fully in the events, including winning and collecting the reward, without paying anything, thus fundamentally breaking the purpose of the protocol.
Paste the following code in the Dussehra.t.sol:
Use access control mechanism for RamNFT::mintRamNFT function to be called only by Dussehra contract.
or
Change the visibility of the function, and making Dussehra inherit from RamNFT contract. This requires rewriting of certain parts of the Dussehra contract.
Manual review, Foundry
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.