156 matches found
Upgraded Q -> M from 330 [1666367006171]
Judge has assessed an item in Issue 330 as Medium risk. The relevant finding follows: GolomTrader is not using ERC721 safeTransferFrom when transferring tokens All the functions that fill orders are not using safeTransferFrom when the owner of the NFT transfer the token to the user or contract th...
Upgraded Q -> M from 437 [1666362126304]
Judge has assessed an item in Issue 437 as Medium risk. The relevant finding follows: Use safetransferfrom instead of transferfrom for ERC721. According to OpenZeppelin's documentation, transferFrom is discouraged and use safeTransferFrom instead. --- The text was updated successfully, but these...
Upgraded Q -> M from 236 [1666363743332]
Judge has assessed an item in Issue 236 as Medium risk. The relevant finding follows: ERC721 token can be lost in fillAsk PROBLEM When a user fills an ask order by calling fillAsk, the ERC721.transferFrom method is used to transfer the NFT to the receiver. Should the receiver be a smart contract...
USE SAFETRANSFERFROM INSTEAD OF TRANSFERFROM FOR ERC721 TRANSFERS
Lines of code Vulnerability details Even though the function implements transferERC721 function which uses safeTransferFrom, there exists another function - transferERC721Unsafe . If transferERC721Unsafe is called and the recipient is not capable of receiving ERC721, the ERC721 token may be...
AN ATTACKER CAN CREATE A SHORT PUT OPTION ORDER ON AN NFT THAT DOES NOT SUPPORT ERC721 (LIKE CRYPTOPUNK), AND THE USER CAN FULFILL THE ORDER, BUT CANNOT EXERCISE THE OPTION
Lines of code Vulnerability details Impact Blur is kind of NFT marketplace where will somehow attracts high value NFT items like cryptopunk. Therefore assuming the platform will handle cryptopunk NFT is a common thing, and this raise an issue. An attacker can create a short put option on...
_executeTokenTransfer() can silently fail for malicious ERC721 implementations.
Lines of code Vulnerability details Impact execute calls executeTokenTransfer to perform the NFT transfer from seller to buyer. The function assumes correct safeTransferFrom functionality and does not check balances. In case of malicious - or poorly designed pausable ERC721 implementations, this...
Reentrancy
Lines of code Vulnerability details Reentrancy in BlurExchange.executeInput,Input contracts/BlurExchange.sol128-175: External calls: - executeFundsTransfersell.order.trader,buy.order.trader,sell.order.paymentToken,sell.order.fees,price contracts/BlurExchange.sol147-153 -...
Use safeTransferFrom for ERC721 too
Lines of code Vulnerability details Impact safeTransferFrom is used for ERC1155 but not for ERC721 in gooble Proof of Concept function gobble uint256 gobblerId, address nft, uint256 id, bool isERC1155 external ..........................snip................................. isERC1155 ?...
Re-entrancy risk to Project in ArtGobblers.gobble()
Lines of code Vulnerability details Impact In ArtGobblers.gobble, the function accepts user controlled input which may create re-entrancy opportunity in the ERC1155.safeTransferFrom and ERC721.transferFrom external calls . Since the nft parameter is user-controlled, any user can create a maliciou...
Use safeTransferFrom instead of transferFrom for ERC721 transfers
Lines of code Vulnerability details Impact Any NFTs can be transferred here, there are a few NFTs here’s an example that have logic in the onERC721Received function, which is only triggered in the safeTransferFrom function and not in transferFrom. Tools Used Solidity Visual Developer of VSCode...
Using safeTransferFrom for ERC721 is safer than transferFrom
Lines of code Vulnerability details Impact ERC721 token would be lost in transfer Proof of Concept isERC1155 ? ERC1155nft.safeTransferFrommsg.sender, addressthis, id, 1, "" : ERC721nft.transferFrommsg.sender, addressthis, id; If the receiver of NFT transferred calling gobble function inside...
Some real-world NFT tokens may support both ERC721 and ERC1155 standards, which may break gobble ()
Lines of code Vulnerability details Impact Detailed description of the impact of this finding. Proof of Concept Provide direct links to all referenced code in GitHub. Add screenshots, logs, or any other relevant proof that illustrates the concept. Tools Used Recommended Mitigation Steps --- The...
ArtGobbler can be abused to squirt more goo without providing any NFT
Lines of code Vulnerability details Impact Some ERC20 tokens don’t throw but just return false when a transfer fails. This can be abused to trick the gobble function to gobble without providing any valid art. A good example of such a token is ZRX: Etherscan code This issue can be abused by a...
[NAZ-M3] Use safeTransferFrom() instead of transferFrom() for ERC721 transfers
Lines of code Vulnerability details Impact The transferFrom method is used instead of safeTransferFrom, presumably to save gas. I however argue that this isn’t recommended because: OpenZeppelin’s documentation discourages the use of transferFrom, use safeTransferFrom whenever possible. Given that...
Arbitrary contract call allows attacker to steal from user's wallet
Lines of code Vulnerability details Impact In function prepareGate , in the following line : bool s, bytes memory r = addressgateKeeper.callcreateGateCallData; A call to an arbitrary contractgateKeeper with custom calldata createGateCallData is made in prepareGate, which means the contract...
Using transferfrom on ERC721 tokens
Lines of code Vulnerability details Impact In the function createParty of contract Crowdfund.sol, when transferring the acquired NFTs to the new party, the transferFrom function is called instead of safeTransferFrom. If the addressparty is a contract address that doesn't support ERC721 tokens , t...
Unsafe ERC721 operations
Lines of code Vulnerability details Impact It is recommended to use safeTransfer and safeTransferFrom when transferring ERC721 and ERC20 token Tools Used Manual audit Recommended Mitigation Steps Use the safeTransfer and safeTransferFrom functions to transfer ERC721 and ERC20 tokens --- The text...
Potential of token lost permanently when highest bid is made by a Contract
Lines of code Vulnerability details Impact When auction is happening, there is no checks on who can participate to createBid. In order to work well, contract need to confirm that the Bidder is capable of receiving ERC721 or else their token may be permanently lost. After a bidder decided to be th...
Users could keep increasing the voting weight just by one NFT
Lines of code Vulnerability details Impact With only one NFT the user can keep increasing the voting weight on different addresses Proof of Concept 1- let’s say Alice has one NFT 2- he delegate to Bob 3- Alice invoke transferFrom to Richard 4- Richard invoke delegate to Bob So now Bob has two...
Use safeTransfer to send ERC721 tokens
Lines of code Vulnerability details Impact Winner of the auction can lose his NFT Proof of Concept When you settle and auction you transfer the NFT using transferFrom token.transferFromaddressthis, auction.highestBidder, auction.tokenId; Maybe this is just an intended behaviour and is the...