The execute function of the V3Utils transformer contract, did not validate the ownership of the token being transformed, which allowed an attacker to front-run users that approved V3Utils for their NFT and exploit their position.
Mitigation
PR-29 successfully mitigates the original issue by introducing the following check, that has been applied to all current transformers:
Lines of code
Vulnerability details
C4 Issue
H-04: V3Utils.execute() does not have caller validation, leading to stolen NFT positions...
Issue Details
The
execute
function of theV3Utils
transformer contract, did not validate the ownership of the token being transformed, which allowed an attacker to front-run users that approvedV3Utils
for their NFT and exploit their position.Mitigation
PR-29 successfully mitigates the original issue by introducing the following check, that has been applied to all current transformers:
It is not possible anymore for an account to call
execute()
onV3Utils
for a token that is not owned by it.I've conducted additional tests to verify the fix and confirm that the vulnerability has been mitigated
Conclusion
Mitigation Confirmed