Producers can transfer their Martenitsa tokens to users, which can still be voted upon during the voting event, which shouldn't be the case.
MartenitsaVoting::voteForMartenitsa
incorrectly enforces the rule that only tokens owned by producers can be voted upon. This restriction is intended to ensure that only MartenitsaTokens produced by active, verified producers are considered in voting to maintain quality and relevancy.
However, the current implementation does not effectively enforce this rule when tokens change hands from producers to non-producers, leading to a scenario where non-producers can vote on tokens that should no longer be eligible under the specified criteria.
This flaw allows non-producer-owned tokens (which have been transferred from producers) to still be voted upon, contrary to the intended functionality. This can undermine the integrity of the voting process, allowing less relevant tokens to influence the results.
Foundry, manual review
Implement an additional check in the MartenitsaVoting::voteForMartenitsa
function to verify that the owner of the specified tokenId
is a producer.
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.