57426 sc medium dynamic price signature replay allows unlimited minting at historical prices
Description
Brief/Intro
Vulnerability Details
function mintDynamicPrice(...) expectedTokenCheck(..) external payable nonReentrant {
// ...
for (uint256 i; i < paramsArray.length; ++i) {
factoryParameters.signerAddress.checkDynamicPriceParameters(receiver, paramsArray[i]); //validate signature with old price
unchecked {
amountToPay += paramsArray[i].price; // Sums up old prices
}
_baseMint(paramsArray[i].tokenId, receiver, paramsArray[i].tokenUri);
}
_pay(amountToPay, expectedPayingToken); // Pay with the old prices
}Impact Details
Recommendation
References
Link to Proof of Concept
Proof of Concept
Previous57482 sc critical front running a donation can inflate the share causing users to lose fundsNext57940 sc medium deterministic address collision in cairo deployment causes dos and unintended receiver sharing
Was this helpful?