Closed code423n4 closed 2 years ago
https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L367-L370
The floor token should also be transferred in for the short call.
368-369: _transferERC20sIn(order.erc20Assets, order.maker); _transferERC721sIn(order.erc721Assets, order.maker);
Just like the long call part.
375-377: _transferERC20sIn(order.erc20Assets, msg.sender); _transferERC721sIn(order.erc721Assets, msg.sender); _transferFloorsIn(order.floorTokens, floorAssetTokenIds, msg.sender);
Lock buyer's NFT asset or funds, and go against the purpose of option.
Mannual analysis.
Adding the floor token transfer for the short call.
Floor tokens should not be transferred in for short calls.
As defined in the spec:
https://github.com/code-423n4/2022-06-putty/blob/main/contracts/spec/fillOrder.md
Lines of code
https://github.com/code-423n4/2022-06-putty/blob/3b6b844bc39e897bd0bbb69897f2deff12dc3893/contracts/src/PuttyV2.sol#L367-L370
Vulnerability details
Missing floor token transfer for short call
Proof of Concept
The floor token should also be transferred in for the short call.
Just like the long call part.
Impact
Lock buyer's NFT asset or funds, and go against the purpose of option.
Tools Used
Mannual analysis.
Recommended Mitigation Steps
Adding the floor token transfer for the short call.