10190 matches found
Upgraded Q -> M from 593 [1664289691118]
Judge has assessed an item in Issue 593 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
ArtGobblers.sol#L693 : function "tokenURI" does not validate the "gobblerId" for all cases.
Lines of code Vulnerability details Impact validation check for gobblerId is missing for other case inside the function tokenURI. Proof of Concept function tokenURIuint256 gobblerId public view virtual override returns string memory // Between 0 and lastRevealed are revealed normal gobblers. if...
Community/Team owner can steal gobbler by sending it to arbitrary address
Lines of code Vulnerability details Impact A malicious owner can steal all of its reserved gobbler. This is possible because owner can send reserved gobbler by withdraw function to ANY ARBITRARY ADDRESS. Proof of Concept owner can set any address to to parameter of withdraw function of...
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 ?...
A malicious user can claim and successfuly steal a gobbler NFT token.
Lines of code Vulnerability details Impact A malicious user can claim and successfuly steal a gobbler NFT token in the function claimGobbler. Proof of Concept The function claimGobbler is used from the mintlisted users to claim a gobbler using a merkle proof. However there is no check to ensure...
Upgraded Q -> M from 686 [1664289678850]
Judge has assessed an item in Issue 686 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
Incorrect Shift Operation
Lines of code Vulnerability details Impact There is an incorrect left shift operation in . The shift operation shl64, 1 would result in a value not equivalent to uint64 cast instead of value of 264 A left shift operation, x y is equivalent to the mathematical expression x 2y Proof of Concept...
The users can steal the pages from the community reserve
Lines of code Vulnerability details Impact community reserve could be losing some pages Proof of Concept In case mintCommunityPages start minting let's say 20 pages if Alice has invoke mintFromGoo before this looop for uint256 i = 0; i numPages; i++ mintcommunity, ++lastMintedPageId; Has finished...
ArtGobblers.mintLegendaryGobbler() doesn't delete getApproved[id] for burned tokens.
Lines of code Vulnerability details Impact When a gobbler is burned for a legendary gobbler, both owner and getApproved should be deleted. But getApproved isn't deleted now so users can revive the gobbler again. Proof of Concept Users can set getApprovedid for the owned NFTs. File:...
ArtGobblers.sol#L411 : mintLegendaryGobbler can be executed without gobblerIds also
Lines of code Vulnerability details Impact The function mintLegendaryGobbler can be called without any gobblerIds as well. Proof of Concept. to mint the legendary gobbler in the function mintLegendaryGobbler, the line ArtGobblers.solL418 calculates the cost. uint256 cost = legendaryGobblerPrice;...
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...
The users can steal the Gobbler from the team
Lines of code Vulnerability details Impact In case mintReservedGobblers start minting let's say 20 for team + 20 for community And the loop on batchMint is now i == 3 Now Alice will invoke mintFromGoo to mint one Gobbler he will steal this Gobbler from the team address Proof of Concept Letβs say...
IntegerOverflow Underflow on AdaptiveFee
Lines of code Vulnerability details The AdaptiveFee uses raw calculation on all functions which are potentially vulnerable to integer Overflow and Underflow. Recommended Mitigation Steps Use Safemath library or Upgrade contract to solidity version above 0.8.0 --- The text was updated successfully...
Upgraded Q -> M from 238 [1664280434191]
Judge has assessed an item in Issue 238 as Medium risk. The relevant finding follows: 5. Wrong comparison result when the length is longer than 32 File: contracts\dnssec-oracle\BytesUtils.sol 44: function comparebytes memory self, uint offset, uint len, bytes memory other, uint otheroffset, uint...
Gobbler Merkle tree vulnerable to second preimage attack
Lines of code Vulnerability details Impact The Merkle tree is vulnerable to a second preimage attack due to the fact that there is no prefix to distinguish between leaves an intermediate nodes Proof of Concept There are no prefixes added to the values in MerkleProofLib and none included in what's...
Injection into the mintlist merkle tree
Lines of code Vulnerability details Description There is claimGobbler function in ArtGobblers contract. It accepts proof as an array of bytes32 values and uses such a proof for the check whether msg.sender is available to claim a gobbler. But there is no check on the length of the proof, so it is...
Wrong balanceOf user after minting legendary gobbler
Lines of code Vulnerability details Impact In ArtGobblers.mintLegendaryGobbler function, line 458 calculates the number of gobblers user owned after minting // We subtract the amount of gobblers burned, and then add 1 to factor in the new legendary. getUserDatamsg.sender.gobblersOwned =...
Gobblers burnt for minting legendary Gobblers can be transferred out from the address zero
Lines of code Vulnerability details Impact The mintLegendaryGobbler function burn standard gobblers by setting their owner to address0 without deleting the getApprovedid. So the original owner can setApproval for himself address and transfer the gobbler token back to any address from the address0...
Upgraded Q -> M from 182 [1664281111530]
Judge has assessed an item in Issue 182 as Medium risk. The relevant finding follows: L00: Usage of transfer to send eth The transfer function has a fixed gas stipend of 2300. If a contract as well as EOA can call the function, it is advised to use call function instead of transfer. Here are...
Users can regain gobblers they use to mint Legendary Gobbler with.
Lines of code Vulnerability details Impact Users can mint legendary gobblers without actually burning their gobblers by using the GobblersERC721.approve function to approve themselves before minting their legendary gobbler the burn mechanism, doesn't delete the getApproved approved entry for that...
Chainlink requests may fail if LINK balance is too low. Reveal feature halted. The unfair disadvantage for holders with unrevealed Gobblers
Lines of code Vulnerability details Impact Chainlink requests may fail if LINK balance is too low. Reveal feature halted. The unfair disadvantage for holders with unrevealed Gobblers Proof of Concept Chainlink VRF V1 oracle works only if the caller has LINK balance high enough to pay the fees. If...
Upgraded Q -> M from 704 [1664289585744]
Judge has assessed an item in Issue 704 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
A User can mint a legendary Gobbler for free
Lines of code Vulnerability details Impact A User can mint a legendary Gobbler for free. Proof of Concept The problem lies in GobblersERC721 approval storage. A user can get approval for a specific id. This approval is granted by the owner of the id or by an "all-approved" user of the owner...
Can Recover Gobblers Burnt In Legendary Mint
Lines of code Vulnerability details Impact Allows users to mint legendary Gobblers for free assuming they have the necessary amount of Gobblers to begin with. This is achieved by "reviving" sacrificed Gobblers after having called mintLegendaryGobbler. Severity Justification This vulnerability...
VRF v1 is depreciated but v2 has different interface
Lines of code Vulnerability details Impact Since VRF v2 is replacing v1, v1 interface might be unavailable some day in the future. Since the v2 interface is different, at that time, the functions depend on VRF v1 will not work. The protocol will not operate due to denial of service. Proof of...
Upgraded Q -> M from 424 [1664289758524]
Judge has assessed an item in Issue 424 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
Allowance isn't deleted when burning gobblers in mintLegendaryGobbler()
Lines of code Vulnerability details Impact Legendary gobblers can be minted for free. Proof of Concept A simple attack allows anyone with enough gobblers to pay for a legendary to get it for free Step by step attack : -Attacker has 69 gobblers and gives approval of all of them to himself -Attacke...
Using non cleaned up variables inside of inline assembly
Lines of code Vulnerability details Impact There is a revealGobblers function in a ArtGobblers smart contract. Inside the function is an assembly insert, which operates with a variable with a size less than a machine word. But the code inside the assembly not checking that variable is cleaned up...
Users can mint legendary gobbler without losing any gobblers
Lines of code Vulnerability details Impact In ArtGobblers.mintLegendaryGobbler function, it mints a legendary gobbler by burning multiple standard gobblers. But instead of call burn, it just set getGobblerDataid.owner = address0. All the data of the standard gobbler will stay the same, included...
GOO tokens will be locked inside the GobblerReserve contract.
Lines of code Vulnerability details Impact GOO will be locked inside the GobblerReserve contract. This contract is used as a reserve contract for the team and community and the minted gobblers will produce GOO tokens continuously. But there is no logic to withdraw or transfer the GOO tokens. Proo...
the validator would able to manipulate the Time Stamp ant
Lines of code Vulnerability details Impact attacker able to make manipulation in the function of pageprice Proof of Concept validators can make some manipulation in the timestamp. bob validator even if can make time stamp manipulation or 2 secend able to call function faster than others then mint...
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...
Upgraded Q -> M from 399 [1664289734798]
Judge has assessed an item in Issue 399 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
Forgetting to delete approval can help attacker mint any legendary gobbler with 0 cost of standard gobblers
Lines of code Vulnerability details 2022-09-artgobblers Forgetting to delete approval can help attacker mint any legendary gobbler with 0 cost of standard gobblers. tags: c4, 2022-09-artgobblers, high Affected code Impact When mint new lengendary gobbler, an amount of standard gobblers cost must ...
Check-Effect-Interact Violations and possible Reentrancy
Lines of code Vulnerability details Impact Some contracts functions make external calls and do not follow the CEI pattern thereby allowing the function to possibly be re-entered. Proof of Concept 1. ArtGobblers.mintFromGoo - , numMintedFromGoo and currentNonLegendaryId state variables updated aft...
ArtGobblers.sol#L396-L402 : The function "gobblerPrice()" does not check whether the mint has started or not
Lines of code Vulnerability details Impact This could revert due to undeflow. Proof of Concept While calculating the gobblerPrice, the function does not check whether the mintStart time is started or not. If it is future time, calling this could revert. This could affect the mintFromGoo function ...
Upgraded Q -> M from 357 [1664289665374]
Judge has assessed an item in Issue 357 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
Possible Integer OverFlow and UnderFlow on Multiple lines of AlgebraPool.sol
Lines of code Vulnerability details There are multiple possibilities for Integer OverFlow and UnderFlow when accounting is performed on AlgebraPool Contract. The above Permalinks will highlight the raw add and sub-operations without Safe Math. Also, the contract uses a solidity version only below...
Dutch auction on-chain might work as expected
Lines of code Vulnerability details Impact Dutch auction on-chain for Page and Gobbler might work as expected. Bidders could spontaneously form some group to take advantage of the rule. The protocol will receive much less fund from auctions, effectively the auction funds being stolen. Proof of...
Upgraded Q -> M from 409 [1664289656223]
Judge has assessed an item in Issue 409 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
Gobbler is missing onERC721Received, gobble feeding use transferFrom which is not safe.
Lines of code Vulnerability details Impact Gobbler is missing onERC721Received, gobble feeding use transferFrom which is not safe. Proof of Concept contract ArtGobblers is GobblersERC721, LogisticVRGDA, Owned, ERC1155TokenReceiver isERC1155 ? ERC1155nft.safeTransferFrommsg.sender, addressthis, id...
ArtGobblers contract wouldn't receive a random seed forever by a malicious user.
Lines of code Vulnerability details Impact ArtGobblers contract wouldn't receive a random seed forever by a malicious user. Currently it can't execute revealGobblers and upgradeRandProvider when gobblerRevealsData.waitingForSeed == true. So if the contract fails to receive the random seed after...
User Might End Up Losing Preferred Gobblers to mint Legendary Gobbler
Lines of code Vulnerability details Impact mintLegendaryGobbler function of ArtGobblers.sol contract doesn't check whether user input parameter of gobblerIds is equal or more than the cost of legendary gobbler. It only check whether it is less than or not. Therefore it is possible for user to inp...
Upgraded Q -> M from 139 [1664289621136]
Judge has assessed an item in Issue 139 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
The LegendaryGobbler can has emissionMultiple == 0
Lines of code Vulnerability details Impact The user could mint LegendaryGobbler with emissionMultiple == 0 Proof of Concept On legendaryGobblerPrice In case this check executed if numMintedSinceStart = LEGENDARYAUCTIONINTERVAL return 0; The cost on mintLegendaryGobbler will be cost == 0 That mean...
Users can recover already burned gobblers after minting a legendary gobbler.
Lines of code Vulnerability details Impact Users can recover already burned gobblers after minting a legendary gobbler. The main flaw is that it doesn't reset getApprovedid here. As a result, users can have more emissionMultiple than they should by recovering the burned gobblers. Proof of Concept...
Upgraded Q -> M from 238 [1664280666405]
Judge has assessed an item in Issue 238 as Medium risk. The relevant finding follows: 5. Wrong comparison result when the self is longer than other File: contracts\dnssec-oracle\BytesUtils.sol 115: function equalsbytes memory self, uint offset, bytes memory other internal pure returns bool 116:...
Upgraded Q -> M from 346 [1664289750538]
Judge has assessed an item in Issue 346 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...
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...
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...