The function MartenitsaToken::updateCountMartenitsaTokensOwner
allows an external caller to arbitrarily increase or decrease the MartenitsaToken::countMartenitsaTokensOwner
mapping for a given owner
address. This can lead to unintended countMartenitsaTokensOwner
mapping manipulation. The MartenitsaMarketPlace::collectReward
function depends on the countMartenitsaTokensOwner
mapping to mint HealthToken
to the buyer. If a buyer has 3 different token they can mint a HealthToken
as countMartenitsaTokensOwner
mapping can be manipulated, the buyer can mint an unlimited amount of HealthToken
.
As the MartenitsaToken::countMartenitsaTokensOwner
can be manipulated by a arbitaray external call, a buyer can arbitrarily increase the countMartenitsaTokensOwner
mapping count and mint an unlimited amount of HealthToken
by calling the MartenitsaMarketPlace::collectReward
function. This can lead high HealthToken
supply and devaluation of the token's utility and value.
First buyer calls the MartenitsaToken::updateCountMartenitsaTokensOwner
function to increase the countMartenitsaTokensOwner
mapping count.
Buyer calls the MartenitsaMarketPlace::collectReward
function to mint an unlimited amount of HealthToken
.
Proof Of Code:
Recommended Mitigation:
Implement access control to restrict the ability to call the MartenitsaToken::updateCountMartenitsaTokensOwner
function to only authorized entities, such as the contract owner or a designated role.
Consider removing the external ability to modify the MartenitsaToken::countMartenitsaTokensOwner
mapping directly and instead update the mapping through other functions that perform appropriate validation and authorization checks.
Implement a system of checks and balances, such as requiring two-factor authentication or multi-signature approvals for any changes to the MartenitsaToken::countMartenitsaTokensOwner
mapping.
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.