The function _createTokenURI creates metadata for the tokenURI.
The function takes 3 arguments
and as a result returns base64Json
string.
Using block.timestamp
and msg.value
as parameters for generating a tokenURI
indeed poses several security risks, including susceptibility to manipulation by validators and vulnerability to front-running attacks.
Validators (miners) can manipulate the block.timestamp
to a certain extent, affecting the randomness and potentially compromising the integrity of the tokenURI
.
Since msg.value
is publicly visible, an attacker can observe pending transactions and submit a similar transaction with a higher gas fee to execute it first, taking advantage of the predictable tokenURI
.
manual review
Instead of relying on block.timestamp
and msg.value
, consider using more secure sources of randomness, such as Chainlink VRF (Verifiable Random Function).
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.