10190 matches found
Access Control Unauthorized access to restricted functions setWithdrawalDelayBlocks
Lines of code Vulnerability details Impact By exploiting the owner's role through social engineering, an attacker could theoretically gain indirect control over any functions that require owner authorization. Specifically, the ability to manipulate withdrawal delays and other critical security...
Vulnerability in Pause Function
Lines of code Vulnerability details Impact An attacker can exploit this vulnerability by setting any value as the new paused status code, which can allow the attacker to circumvent the pausing restrictions and carry out unauthorized actions on the contract. This can lead to significant consequenc...
Slashing can be frontrunned
Lines of code Vulnerability details Proof of Concept When attempting to withdraw funds, the user calls queueWithdrawal first. queueWithdrawal checks that the caller is not frozen, then marks the withdrawal as pending. function queueWithdrawal uint256 calldata strategyIndexes, IStrategy calldata...
isContract() is not a reliable way of checking if the input is an EOA
Lines of code Vulnerability details Impact depositIntoStrategyWithSignature is checking if the msg.sender is EOA or the contract and it is doing it by check isContract which is not right Proof of Concept The isContract check can be passed even though if msg.sender is a smart contract if Function ...
Integer Overflow Large numbers of strategies/deposits could overflow arrays stakerStrategyList
Lines of code Vulnerability details Impact Overflows of the staker StrategyList and StrategyShares arrays could allow an attacker to manipulate a staker's data by reusing keys. Once the arrays have wrapped around, depositing into a large number of strategies or requesting withdrawals for the same...
[H-02] Owner cannot freeze and thus cannot slash a queued withdraw that has the delegatedAddress being the 0 address.
Lines of code Vulnerability details canSlash checks to see if the block number is less than whitelistedContractDetailstoBeSlashedslashingContract, which will be 0 if a user has not delegated an address. This will revert freezeOperatorand not allow an owner/watcher to freeze the address, and thus...
verifyWithdrawalCredentialsAndBalance does not verify that oracleBlockNumber is the latest block number.
Lines of code Vulnerability details Impact After participating in Ethereum Staking, you may receive shares based on your balance when it was 32 ETH, even though you may have suffered a certain level of slashing at 32 ETH. Until some conscientious watcher proves the slashing in the Consensus Layer...
deposit will cause erros if totalShares is 1e9-1 or less
Lines of code Vulnerability details Impact user funds will be stuck Proof of Concept User will not be able to withdraw for tokens that are less then 1e9-1 like usdt This is a warning in the code WARNING: In order to mitigate against inflation/donation attacks in the context of ERC4626, this...
Upgraded Q -> 3 from #306 [1683219251927]
Judge has assessed an item in Issue 306 as 3 risk. The relevant finding follows: L-01 Consider using OpenZeppelin’s SafeCast library to prevent unexpected overflows when casting from uint256 In the function buy and sell of the contract PrivatePool.sol the function first set the variables...
Upgraded Q -> 3 from #421 [1683219158450]
Judge has assessed an item in Issue 421 as 3 risk. The relevant finding follows: 1. Unchecked Cast May Overflow As of Solidity 0.8 overflows are handled automatically; however, not for casting. For example uint324294967300 will result in 4 without reversion. Consider using OpenZepplin's SafeCast...
Overflow Excessive claims could overwhelm storage _userWithdrawals mapping
Lines of code Vulnerability details Impact By submitting an excessive number of claims through a compromised user, an attacker could theoretically overwhelm the storage used for mapping users to their delayed withdrawals. If critical data is overwritten, the contract would be rendered unusable...
Skipping indices of malicious strategies does not work
Lines of code Vulnerability details Impact In src/contracts/core/StrategyManager.solL536 parameter indicesToSkip per documentation: """exists so that, e.g., if the slashed QueuedWithdrawal contains a malicious strategy in the strategies array which always reverts on calls to its 'withdraw'...
Use of block.timestamp
Lines of code Vulnerability details Impact Block timestamps have a purpose for a variety of applications, such as entropy for random numbers see the Entropy Illusion for further details, locking funds for periods of time, and various state-changing conditional statements that are time-dependent...
Measuring the withdrawal delay in block production time won't work properly on chains where the production time is not 12 seconds
Lines of code Vulnerability details Proof of Concept For withdrawals other than beaconChainETH, the variables withdrawalDelayBlocks and MAXWITHDRAWALDELAYBLOCKS will be used to enforce a delay for withdrawals in StrategyManager.sol. Currently MAXWITHDRAWALDELAYBLOCKS is set to 50400. uint256 publ...
Medium Access Control Unauthorized access to restricted functions
Lines of code Vulnerability details Impact compromising the owner or whitelister roles could allow an attacker to manipulate critical whitelist and configuration logic, potentially damaging the use of the protocol. By taking control of privileged access, the attacker could enable rapid withdrawal...
Zero address pauser assignment
Lines of code Vulnerability details Impact By allowing any address to be assigned as the pauser, the StrategyBase contract leaves itself vulnerable to losing critical functionality that controls token transfers in and out. Assigning a zero address would result in no valid pauser, preventing the...
Updating a submission - testing is i can add a submission by team that was originally an issue for a single warden.
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 testings...
Upgraded Q -> 3 from #407 [1683102761347]
Judge has assessed an item in Issue 407 as 3 risk. The relevant finding follows: L01 Unsafe downcasting On PrivatePool.solL230-L231 there are two unsafe downcasting from uint256 to uint128; virtualBaseTokenReserves += uint128netInputAmount - feeAmount - protocolFeeAmount; virtualNftReserves -=...
Upgraded Q -> 2 from #898 [1683143849953]
Judge has assessed an item in Issue 898 as 2 risk. The relevant finding follows: Royalty receiver will not get correct royalty as saleprice is not calculated properly uint256 salePrice = outputAmount / sellsi.tokenIds.length; Here the salesprice for an nft is calculated by using the above formula...
Upgraded Q -> 2 from #225 [1683100933057]
Judge has assessed an item in Issue 225 as 2 risk. The relevant finding follows: uint256 exponent = baseToken == address0 ? 18 - 4 : ERC20baseToken.decimals - 4; will revert since ERC20baseToken.decimals - 4; causes an underflow --- The text was updated successfully, but these errors were...
Upgraded Q -> 2 from #200 [1683080702977]
Judge has assessed an item in Issue 200 as 2 risk. The relevant finding follows: L-03 KangarooVaultminDepositAmount should be a fairly high number to prevent 0 deposits or dust deposits that may affect the deposit/withdrawal process --- The text was updated successfully, but these errors were...
Upgraded Q -> 2 from #878 [1683053128185]
Judge has assessed an item in Issue 878 as 2 risk. The relevant finding follows: L-3 Potential loss of funds when paying royalties - --- The text was updated successfully, but these errors were encountered: All reactions...
Testing Issue Type
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 testing...
Upgraded Q -> 2 from #543 [1683017069535]
Judge has assessed an item in Issue 543 as 2 risk. The relevant finding follows: changeFeeQuote assumes all base tokens will be of decimals of at 4 decimals. However this would lead to issues whereby baseToken is of 2 decimal place. --- The text was updated successfully, but these errors were...
Upgraded Q -> 2 from #882 [1683052821779]
Judge has assessed an item in Issue 882 as 2 risk. The relevant finding follows: In function buy and sell if one royalty recipients reverts whole transaction will fail --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #854 [1683053410661]
Judge has assessed an item in Issue 854 as 2 risk. The relevant finding follows: L-01 Reorg attack possibility in pool factory 1 --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 3 from #878 [1683053134023]
Judge has assessed an item in Issue 878 as 3 risk. The relevant finding follows: L-7 Potential overflow while updating reserves values in PrivatePool contract - --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #198 [1683053528122]
Judge has assessed an item in Issue 198 as 2 risk. The relevant finding follows: L1 - The pool takes more royalty fee than it spends --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #245 [1683017351880]
Judge has assessed an item in Issue 245 as 2 risk. The relevant finding follows: L-05 PrivatePoolMetadata.tokenURI is not compliant with EIP721 It implements PrivatePoolMetadata.tokenURI , a function overriding ERC721's tokenURI. This function returns the metadata URI of the provided token ID The...
Upgraded Q -> 2 from #854 [1683053416481]
Judge has assessed an item in Issue 854 as 2 risk. The relevant finding follows: L-07 Malicious collection owner could steal all base tokens by updating royalty during calls 1 --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #740 [1683013961460]
Judge has assessed an item in Issue 740 as 2 risk. The relevant finding follows: Royalty receiver can reject, unsupported, or be blacklisted to receive royalty fee token and can result in the whole transaction be reverted. --- The text was updated successfully, but these errors were encountered:...
Upgraded Q -> 2 from #882 [1683052827510]
Judge has assessed an item in Issue 882 as 2 risk. The relevant finding follows: changeFeeQuote reverts for tokens with decimals less than 4 --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #680 [1683016846473]
Judge has assessed an item in Issue 680 as 2 risk. The relevant finding follows: D. FlashFee is a flat amount, meaning the cost to flash loan an NFT at floor price is the same as one worth 5x the floor price. FlashFee should instead be based on the weigh of the NFT being flashloaned, with more...
Upgraded Q -> 2 from #198 [1683053533286]
Judge has assessed an item in Issue 198 as 2 risk. The relevant finding follows: L2 - Royalty payment is unfair --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #215 [1683053585771]
Judge has assessed an item in Issue 215 as 2 risk. The relevant finding follows: QA10 Both EthRouterbuy and EthRoutersell do not check whether recipient == address0, as a result, they might send royalty fees to the zero address - loss of funds. --- The text was updated successfully, but these...
Upgraded Q -> 2 from #878 [1683053122687]
Judge has assessed an item in Issue 878 as 2 risk. The relevant finding follows: L-2 Royalties are paid assuming all NFTs in the batch are equally priced - --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #882 [1683052832814]
Judge has assessed an item in Issue 882 as 2 risk. The relevant finding follows: In changeFeeQuote if changeFee == 0 protocolFeeAmount becomes 0 --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #882 [1683052816154]
Judge has assessed an item in Issue 882 as 2 risk. The relevant finding follows: If royaltyFee 0 and recipient == address0 users will be overcharged --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 3 from #284 [1683017290576]
Judge has assessed an item in Issue 284 as 3 risk. The relevant finding follows: NFT tokens sent to the EthRouter contract by mistake can be drained by pool contracts. When someone calls sell, deposit or change functions on EthRouter contract, the contract gives the particular pool full approval...
Upgraded Q -> 2 from #882 [1683052810426]
Judge has assessed an item in Issue 882 as 2 risk. The relevant finding follows: Attacker can front-run create to steal tokens sent to predetermined address --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 2 from #680 [1683016840166]
Judge has assessed an item in Issue 680 as 2 risk. The relevant finding follows: A. Fee structure is inconsistent for buys/changes. In buy and sell function protocolFee is based on a percentage of the input/output amount but in change the fee is based on the pool fee not the input amount. It shou...
Upgraded Q -> 2 from #240 [1683052133668]
Judge has assessed an item in Issue 240 as 2 risk. The relevant finding follows: LOW‑11 tokenURI does not follow EIP-721 The EIP states that tokenURI "Throws if tokenId is not a valid NFT", which the code below does not do. If the NFT has not yet been minted, tokenURI should revert Proof Of Conce...
Upgraded Q -> 2 from #878 [1683053139232]
Judge has assessed an item in Issue 878 as 2 risk. The relevant finding follows: L-8 Zero amount ERC20 token transfers may fail some implementations - --- The text was updated successfully, but these errors were encountered: All reactions...
Upgraded Q -> 3 from #222 [1683017474019]
Judge has assessed an item in Issue 222 as 3 risk. The relevant finding follows: L-02 Downcasting uint or int may result in overflow Consider using OpenZeppelin's SafeCast library to prevent unexpected overflows. Instances: 2 File: src/PrivatePool.sol 231: virtualNftReserves -= uint128weightSum;...
Malicious users can exploit NameEncoder vulnerability to forge arbitrary names
Lines of code Vulnerability details Impact A malicious user can spoof NameEncoder.dnsEncodeName by forging a name to impersonate any other name, which can lead to faulty contract logic or even theft of someone else's name. Proof of Concept The function NameEncoder.dnsEncodeName is used to convert...
SHA1 Hashing Algorithm vulnerable to Length Extension Attack
Lines of code Vulnerability details Impact The implementation of the SHA1 hashing algorithm in the code has a significant impact as it is vulnerable to the length extension attack. This attack enables us to create a new hash for an extended message without altering the existing hash, even though ...
Vulnerability in Keccak Function Used for Equality Check in equals() Function.
Lines of code Vulnerability details Impact The BytesUtils library is using Keccak function to check for equality in the equals function. This is a security concern since the Keccak function is vulnerable to hash collisions, which could allow a malicious user to create an input that matches a...
Inception can be set into the future due to unsafe cast in RRUtils.serialNumberGte()
Lines of code Vulnerability details Proof of Concept RRUtils.serialNumberGte will use an unsafe signed cast which allows inceptions to be set to values bigger than int32 without any revert taking place. The function will cast i1 and i2 from uint32 to int32 in an unchecked block, and then it will...
Arithmetic Overflow in hexStringToBytes32 Function
Lines of code Vulnerability details Impact The vulnerability in the hexStringToBytes32 function can lead to an arithmetic overflow if the length of the hex-encoded string is odd, the loop that reads the hex-encoded string has a condition that checks for the last index, but the index is incremente...
Having RRSetWithSignature has absolute power
Lines of code Vulnerability details Impact Assuming that RRSetWithSignature is issued for Alice, Alice executes the proveAndClaim function and becomes the owner of DNS. She then transfers it to Bob. When Alice executes the proveAndClaim function again, she becomes the owner of DNS once more, and...