Lucene search
+L
Code423n4Most viewed

10190 matches found

Code423n4
Code423n4
added 2022/12/16 12:0 a.m.12 views

Chainlink price feed is not sufficiently validated and can return stale price

Lines of code Vulnerability details Impact As mentioned by , "Prices provided by the oracle network are also compared to Chainlink's public price feeds for additional security. If prices have more than a 2% difference the transaction is reverted." The Chainlink price verification logic in the...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/16 12:0 a.m.12 views

Extending period in Lock contract will block user funds

Lines of code Vulnerability details Impact Extending lock will block users' funds. Contract: Lock.sol Proof of Concept Locking tokens with function lock... will update mapping mapping totalLocked for given asset with value of amount, here: totalLockedasset += amount. However, when extending lock...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/16 12:0 a.m.12 views

The owner can swap the proxy implementation with a malicious one

Lines of code Vulnerability details The owner of VRFNFTRandomDrawFactory.sol could swap the current implementation with a malicious one at any moment, without a waiting period. Impact The worse case scenario is one in which the private key of the contract owner gets stolen. In this case the owner...

6.7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/12 12:0 a.m.12 views

MintHook doesn't allow users with NFT score requirement to mint

Lines of code Vulnerability details Impact The depositHook contract checks that users are allowed to deposit either if they are on the allow list or if they have the required NFT score: if !accountList.isIncludedsender requiresatisfiesScoreRequirementsender, "depositor not allowed"; However, once...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/12 12:0 a.m.12 views

Incompatibility With Rebasing/Deflationary/Inflationary tokens

Lines of code Vulnerability details Impact The Maverick AMM does not appear to support rebasing/deflationary/inflationary tokens whose balance changes during transfers or over time. The necessary checks include at least verifying the amount of tokens transferred to contracts before and after the...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/12 12:0 a.m.12 views

PrePOMarket.sol : a sender who is not included in the account list can front run and mint prior to setting the _mintHook

Lines of code Vulnerability details Impact a sender who is not included in the account list can front run and mint prior to setting the mintHook. Proof of Concept The contract says, Minting will only be done by the team, and thus relies on the mintHook to enforce access controls. This is also why...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/12 12:0 a.m.12 views

function mint() in PrePOMarket shouldn't accept deposits after expiryTime of Market

Lines of code Vulnerability details Impact Function mint Mints Long and Short tokens in exchange for amount collateral and according to the comment in the IPrePOMarket: "Minting is not allowed after the market has ended." but there is no check or restriction in the code that to make sure minting ...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/12 12:0 a.m.12 views

Overflow in BinMap can break pool

Lines of code Vulnerability details Impact The BinMap library performs multiplication on int32 values that can potentially overflow and cause the corresponding function calls to revert. The functions in question are used by essential Pool methods such as Pool.addLiquidity or Pool.swap and an...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Users will get a low amount of NFT if they try to buy a lot of them

Lines of code Vulnerability details Impact If user calls buyamount with a value larger than uint48 it will overflow during casting identical to amount = amount % typeuint48.max and cause unexpected behavior for the user. When a user pays a lot of money for a large amount of NFT, but instead they...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Loss of ETH for NFT buyers in LPDA contract

Lines of code Vulnerability details Impact The buy function of LPDA sale contract can be invoked with 0 as the input value and 0 ETH as the sent valuemsg.value = 0. The buy function automatically ends the sale when newId == sale.finalId and distributes ETH to feeReceiver and saleReceiver. Since t...

7.1AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Router.exactInputInternal doesn't check that swapped amount is same as amountIn provided by user

Lines of code Vulnerability details Impact Router.exactInputInternal doesn't check that swapped amount is same as amountIn provided by user. In case if it's not, then exact function doesn't do what it should. It doesn't trade exact amount of tokens. Proof of Concept If user calls...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Compromised admin can instantly take all NFTs held in NToken contracts

Lines of code Vulnerability details Description executeAirdrop is a function admin may call in order to collect airdrops for NFTs held in ParaSpace's nToken contract. function executeAirdrop address airdropContract, bytes calldata airdropParams external override onlyPoolAdmin require...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

UniswapV3 tokens of certain pairs will be wrongly valued, leading to liquidations.

Lines of code Vulnerability details Description UniswapV3OracleWrapper is responsible for price feed of UniswapV3 NFT tokens. Its getTokenPrice is used by the health check calculation in GenericLogic. getTokenPrice gets price from the oracle and then uses it to calculate value of its liquidity...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Decimals of the oracle is not checked

Lines of code Vulnerability details Impact Decimals of the Chainlink oracle is not checked, it is assumed to have the same unit as BASECURRENCYUNIT but it might not always be the case. If the oracle use a different number of decimals all the price will be wrong by magnitudes. Proof of Concept...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

LPDA refund logic is broken, meaning buyers always get lowest price sale

Lines of code Vulnerability details Impact The protocol intends the LPDA to refunds buyers with the difference between the price they paid and the last sale price Once the sale has ended, the users must call refund to get their Ether refunds based on their purchase price and lowest sale price 99:...

6.7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

Anyone can prevent themselves from being liquidated as long as they hold one of the supported NFTs

Lines of code Vulnerability details Contrary to what the function comments say, removeFeeder is able to be called by anyone, not just the owner. By removing all feeders i.e. floor twap price oracle keepers, a malicious user can cause all queries for the price of NFTs reliant on the NFTFloorOracle...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/09 12:0 a.m.12 views

LPDA.sol and FixedPrice.sol will lock the funds forever

Lines of code Vulnerability details Impact Possibility of IDs collision The ether will be locked on FixedPrice or LPDA Proof of Concept On the same Escher721 Let’s say the first collection start from id = 0 and end on id = 10 So the next collection of the same Escher721 We can say the next part o...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/05 12:0 a.m.12 views

Possible DoS On executeCalls() function

Lines of code Vulnerability details Impact The contract can be in a state of DoS as the function executeCalls would consume all the gas as there is no upper limit on the number of calls that can be inside the array calls. Proof of Concept In the function here it perform a for loop and loops throu...

6.7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/05 12:0 a.m.12 views

ExecutorAware doesn't adequately validate sender for nonce

Lines of code Vulnerability details Impact Contracts on the execution chain are asked to inherit from ExecutorAware.sol. This gives them the ability to check msgSender and nonce pulled from the calldata in the format encoded by the executor. While the msgSender function adequately checks that the...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/12/03 12:0 a.m.12 views

Potential reentrancy attack

Lines of code Vulnerability details Impact There is a potential of reentrancy attack in executeCalls in EthereumToArbitrumExecutor.sol since CallLib is making an external call with its executeCalls and we do not know the implementation of the contract that will be called eventually. The same issu...

6.7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/28 12:0 a.m.12 views

compound could be used by uniswap stakers to maximize fees for AutoPxGmx users

Lines of code Vulnerability details Impact Anyone can call AutoPxGmx::compound. Hence a staker in the 10000 1% fee uniswap pool can call compound with that pool and take a larger fee from AutoPxGmx users maximizing their gains and griefing users. Proof of Concept fee chooses which uniswap pool to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/28 12:0 a.m.12 views

Potential uint underflow

Lines of code Vulnerability details Impact Potential underflow if shares is greater than totalSupply Proof of Concept Tools Used Manual review Recommended Mitigation Steps Before the following line, check if totalSupply is greater or equal to shares --- The text was updated successfully, but thes...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/28 12:0 a.m.12 views

User can continuosly accrue rewards they are not due

Lines of code Vulnerability details Impact It is possible that block.timestamp can be manipulted by a user, thus allowing a malicious user to continuously acrue rewards they are not due, as long as the value is not 0 then rewards will be accrued function userAccrueERC20 producerToken, address use...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/28 12:0 a.m.12 views

tokenID that is not minted will be stored into the feeRecipient storage

Lines of code Vulnerability details Impact In the original code, tokenID is incremented just after mint function is executed. Afterwards, tokenID is stored into the feeRecipient storage. As a result, tokenID that is not minted will be stored into the feeRecipient storage. Proof of Concept In the...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/28 12:0 a.m.12 views

Slippage protection on AutoPxGmx::compound calls is insufficient and can result in MEV

Lines of code Vulnerability details Proof of Concept The compound method has the amountOutMinimum parameter, which basically serves as the slippage tolerance parameter. The problem is that everywhere in the code where compound is called, the value of amountOutMinimum is just 1 wei, which basicall...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/27 12:0 a.m.12 views

Need to check the _mint() status before increment the token count .

Lines of code Vulnerability details Impact Its possible to increase the tokenIdTracker even mint function failed. The mint status must be checked before increment tokenIdTracker value . Proof of Concept function registeraddress recipient public onlyUnregistered returns uint256 tokenId address...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/25 12:0 a.m.12 views

Any address can assign itself with any existing NFT.

Lines of code Vulnerability details Impact The assign function of Turnstile contract does not validate whether the caller should be allowed to invoke this function. Any address can invoke this function with any pre-existing tokenId value as the input and the function will get executed successfull...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/25 12:0 a.m.12 views

Turnstile.distributeFees doesn't check if nft exists

Lines of code Vulnerability details Impact Turnstile.distributeFees doesn't check if nft exists and allows to distribute fees to token that doesn't exist. Proof of Concept function distributeFeesuint256 tokenId public onlyOwner payable if msg.value == 0 revert NothingToDistribute; balancestokenId...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/25 12:0 a.m.12 views

Funds are locked if can’t transfer reward to recipient in withdraw

Lines of code Vulnerability details Impact When recipient not able to received reward when call withdraw, as natspec: If contract is using proxy pattern, it's possible to register retroactively, however past fees will be lost. We not handle that case to get locked funds back. We should add...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Medium: Vaults can be griefed to not be able to be used for deposits

Lines of code Vulnerability details Description Interaction with SavETHVault and StakingFundsVault require a minimum amount of MINSTAKINGAMOUNT. In order to be used for staking, there needs to be 24 ETH or 4 ETH for the desired BLS public key in those vaults. The issue is that vaults can be grief...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Med: withdrawDETH is not functional for array lengths greater than one.

Lines of code Vulnerability details Description The withdrawDETH function is used in GiantSavETHVaultPool to burn user's LP tokens and grant them dETH. It loops over all input vaults and all input LPTokens, and for each one calls lpTokenETH.burnmsg.sender, amount; Before that, it uses...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Unbounded loop can run out of gas in withdraw and unstake operations

Lines of code Vulnerability details Unbounded loop can run out of gas in withdraw and unstake operations Impact There are no bounds on the number of orders in the loop, this can run out of gas due to cost of the operations that can vary by the time. Proof Of Concept function withdrawLPTokensLPTok...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Possibly reentrancy attacks in _distributeETHRewardsToUserForToken function

Lines of code Vulnerability details Author: rotcivegaf Impact The root of the problem are in the distributeETHRewardsToUserForToken who makes a call to distribute the ether rewards. With this call the recipient can execute an reentrancy attack calling several times the different function to steal...

7.2AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Staking Funds vault's LP holder cannot claim EIP1559 rewards after derivatives are minted for a new BLS public key that is not the first BLS public key registered for syndicate

Lines of code Vulnerability details Impact After the derivatives are minted for the first BLS public key registered for the syndicate, the Staking Funds vault's LP holder can claim the corresponding EIP1559 rewards received by the syndicate. However, after the derivatives are minted for a new BLS...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

GiantMevAndFeesPool::afterTokenTransfer doesn't update claimed amount of sender

Lines of code Vulnerability details Impact After a token transfer of GiantMevAndFeesPool's GiantLP, the receiver gets their claimed amount updated to the correct value, but the sender does not. If more than zero tokens were transferred, that amount in the sender's future rewards will be lost, and...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/18 12:0 a.m.12 views

Slashing can prevent Protected Staking Pool depositors from redeeming their ETH

Lines of code Vulnerability details The documentation states that: The Protected Staking Pool is free from any slashing and leaking risk. While the penalties affect the node operator first, then the Fees and MEV Pool stakers, if the slashing amount is higher, it will also impact the Protected...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/14 12:0 a.m.12 views

The function _execute could be called externally

Lines of code Vulnerability details Author: rotcivegaf Impact The execute use a modifier to only can called internally, also specified in the documentation of the function: Must be called internally. But this modifier can be pass if a contract call the execute or bulkExecute and in the returnDust...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/14 12:0 a.m.12 views

Upgraded Q -> M from #381 [1668467789168]

Judge has assessed an item in Issue 381 as M risk. The relevant finding follows: There is no limit for FlashLoanFee function setFlashLoanFeeuint256 flashLoanFee external override onlyOwner uint256 oldFlashLoanFee = flashLoanFee; if oldFlashLoanFee == flashLoanFee revert...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/14 12:0 a.m.12 views

Attacker can spoof remainingETH and double-spend their input ETH to Exchange

Lines of code Vulnerability details Description remainingETH is an important state variable in Exchange.sol, which keeps track of how many ETH have yet to be used as payment from the current msg.value. The setupExecution modifier sets the value before and after execution: modifier setupExecution...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/14 12:0 a.m.12 views

Susceptible to reorg attack

Lines of code Vulnerability details Impact When reorg happens, it is possible that the cancelled order by the taker be executed by the maker. Proof of Concept Suppose userA is seller and userB is buyer, seller is maker, and buyer is taker. After some time, userB the buyer cancels the order by...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/14 12:0 a.m.12 views

User's assets can be drained without payment due to invalid signature check

Lines of code Vulnerability details Impact Exchange::execute uses validateSignatures function to verify if an order is signed by both parties. However, this function does not verify the signature when order.trader == msg.sender. Hence, malicious actor can prepare a bundle of all seller's Orders...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/13 12:0 a.m.12 views

Left ERC20/ETH can be withdrawn by anyone

Lines of code Vulnerability details Impact Any remaining balance can be used by anyone. This can impact on users who transfers directly to the protocol by mistake. Proof of Concept If any user by mistake transfers ERC20/ETH directly not through the ERC20EnabledLooksRareAggregator or execute...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/13 12:0 a.m.12 views

Without strictly verifying the attribution of balance and the size of the balance when refunding, hackers may use the attack to steal all ERC20 tokens!

Lines of code Vulnerability details Impact When using any ERC20 token to purchase NFT, after the purchase is successful, the 108th line of code in the contract LooksRareAggregator determines whether there are any remaining unused ERC20 tokens. If there is any remaining, it will be returned to the...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/13 12:0 a.m.12 views

calling execute() may lead to stealing funds if some ETH is stuck on the contract

Lines of code Vulnerability details Impact if some Ether is sent erroneously or not to the contract, anyone that calls correctly LooksRareAggregator.execute will be able to steal those coins. to execute the function using ethers as payment, these conditions must be true: there is at least a trade...

6.9AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/12 12:0 a.m.12 views

Loss of user funds

Lines of code Vulnerability details Impact The LooksRareAggregator contract can receive ether but cannot return it unless through the returnERC20TokensIfAny or returnETHIfAny function. This means that there is a scenario where a user can accidentally transfer funds to this contract and those fund...

7.1AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/10 12:0 a.m.12 views

Closing an unexisting credit can overflow the credit count variable in the LineOfCredit contract

Lines of code Vulnerability details The LineOfCredit contract doesn't verify if a credit exists and is properly initialized when closing it, and will update its state anyway, leading to an inconsistent count. Impact The close function in the LineOfCredit contract doesn't check if the given credit...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/10 12:0 a.m.12 views

LineLib.sendOutTokenOrETH() may not be compatible with contract receiver because of use of transfer()

Lines of code Vulnerability details Impact LineLib.sendOutTokenOrETH may revert when its receiver is a contract, preventing it from receiving ETH, and thus from much of the functionality of the protocol. Proof of Concept LineLib.sendOutTokenOrETH is as follows. / @notice - Send ETH or ERC20 token...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/10 12:0 a.m.12 views

Missing ReEntrancy Guard to sendOutTokenOrETH function

Lines of code Vulnerability details Proof of Concept There is no re-entry risk on true ERC-20 tokens that work according to the spec i.e. audited, etc.. However you can write a malicious ERC-20 with custom transferFrom or approve that have re-entrancy hooks to attack a target. Furthermore ERC-777...

7AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/10 12:0 a.m.12 views

Line of credit status can be set to REPAID even if having credits with debt

Lines of code Vulnerability details A malicious borrower can close non-existing credits to alter the status of the credit to LineLib.STATUS.REPAID, even if having open credit with debt. Impact The close function in the LineOfCredit contract can be used to close non-existing credits, which will...

6.8AI score
SaveExploits0
Code423n4
Code423n4
added 2022/11/09 12:0 a.m.12 views

No Checks On Withdraw Function For _amount

Lines of code Vulnerability details Impact If bridgeburn function is a faulty function or a contract that uses older version of solidity the variable the balance may overflow due to lack of checks. Proof of Concept In the function there should be a check balanceOfmsg.sender=amount to mitigate...

7.1AI score
SaveExploits0
Total number of security vulnerabilities5000