The function _createTokenURI creates metadata for the tokenURI.
The function takes 3 arguments
and as a result returns base64Jsonstring.
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.