Lucene search
+L
Code423n4Recent

10190 matches found

Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•23 views

Shortfall.sol#initialize's waitForFirstBidder and nextBidderBlockLimit too short

Lines of code Vulnerability details Impact File: Shortfall.sol 147 waitForFirstBidder = 100; 148 nextBidderBlockLimit = 10; Binance Smart Chain has a block time of around 3 seconds. This could lead to an attacker blocking other bids to bid for the token at a low price. Proof of Concept Tools Used...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•14 views

getAccountSnapShot always returns NO_ERROR no matter what's its inputs is.

Lines of code Vulnerability details Impact In the safeGetAccountSnapShot function, it seems the getAccountSnapshot always return NOERROR, so the checking if err != 0 revert SnapshotErroraddressvToken, user; Becomes meaningless because err is always equal to 0. This may lead to critical issues...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•27 views

Inflation attack by drip

Lines of code Vulnerability details Impact The drip might inflate the exchange rate on an initial stake such that that subsequent stakers get minted zero wxETH. Their stake can then be unstaked by the first staker, together with their own first stake and inflation investment. Effectively, the fir...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•24 views

totalBorrows inflates faster than the sum of each position's debt

Lines of code Vulnerability details Impact File: VToken.sol 678 function accrueInterest public virtual override returns uint256 --skip-- 710 Exp memory simpleInterestFactor = mulExp mantissa: borrowRateMantissa , blockDelta; 711 uint256 interestAccumulated = mulScalarTruncatesimpleInterestFactor,...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•21 views

Every time borrow, the interest is treated as a loan to calculate the interest

Lines of code Vulnerability details Impact File: VToken.sol 896 uint256 accountBorrowsPrev = borrowBalanceStoredborrower; 897 uint256 accountBorrowsNew = accountBorrowsPrev + borrowAmount; After each loan, the original interest will be converted into the loan amount. This can cause interest to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•24 views

Stale risk fund assets may make protocol loose funds

Lines of code Vulnerability details Vulnerability Details When swapping Risk funds in a pool swapPoolsAssetsaddress,uint256,address from one market underlying asset type to convertibleBaseAsset , only a limited selected markets are supplied as input parameter. function swapPoolsAssets address...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•22 views

vTokenPrice used instead of weightedVTokenPrice when calculating snapshot.totalCollateral in _getHypotheticalLiquiditySnapshot

Lines of code Vulnerability details Impact In the getHypotheticalLiquiditySnapshot function when the value of snapshot.totalCollateral is calculated the vTokenPrice is used instead of weightedVTokenPrice, this will lead the function to return the wrong value for snapshot.totalCollateral resulting...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•23 views

Comptroller.sol#healAccount did not call updateRewardTokenBorrowIndex to update the reward

Lines of code Vulnerability details Impact healAccount should call updateRewardTokenBorrowIndex to calculate the reward before affecting the debt value. Proof of Concept Tools Used manual Recommended Mitigation Steps call updateRewardTokenBorrowIndex before heal account. Assessed type Other --- T...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•23 views

Comptroller.sol#liquidateCalculateSeizeTokens assumes the same precision for vTokenBorrowed and vTokenCollateral

Lines of code Vulnerability details Impact File: Comptroller.sol 1099 uint256 exchangeRateMantissa = VTokenvTokenCollateral.exchangeRateStored; // Note: reverts on error 1100 uint256 seizeTokens; 1101 Exp memory numerator; 1102 Exp memory denominator; 1103 Exp memory ratio; 1104 1105 numerator =...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•43 views

AMO2 doesn't add the lp balance of the CVXStaker to the withdrawable token amount

Lines of code Vulnerability details Impact The lp tokens held by CVXStaker can't be able to used or withdrew by AMO2. Although the jam is not permanent and the owner of the CVXStaker can use recoverToken function to withdraw them, it will cause the functions about removing liquidity break down in...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•18 views

Rebalancing may overshoot

Lines of code Vulnerability details Impact A rebalance operation may overshoot, bringing the percentage outside the thresholds. Proof of Concept There are contractual limitations on the rebalance operations. It is assumed that these are put in place to ensure that the Rebalance Defender bot is no...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•38 views

When borrowRateMantissa is higher than the limit value, VToken contract will be DOS

Lines of code Vulnerability details Impact File: VToken.sol 678 function accrueInterest public virtual override returns uint256 --skip-- 695 uint256 borrowRateMantissa = interestRateModel.getBorrowRatecashPrior, borrowsPrior, reservesPrior; 696 requireborrowRateMantissa borrowRateMaxMantissa. Thi...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•19 views

User can bypass _ensureMaxLoops check

Lines of code Vulnerability details Impact The user can bypass ensureMaxLoops check in Comptroller.sol to add in accountAssets all possible markets through borrow functions of VToken.sol. Proof of Concept The user adds max number of markets through enterMarkets. Then user can add another markets...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•19 views

stakedBalance() The wrong number of balance may be returned

Lines of code Vulnerability details Impact stakedBalance maybe return wrong number,Causes AMO.sol not to work properly Proof of Concept stakedBalance use for get the current staked balance of CVXStaker The code is as follows: function stakedBalance public view returns uint256 balance balance =...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•22 views

Deflation bricking

Lines of code Vulnerability details Impact First staker can block staking by making exchangeRate == 0. Proof of Concept As can be seen function exchangeRate public view returns uint256 /// @dev if there are no tokens minted, return the initial exchange rate uint256 totalSupply = totalSupply; if...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•29 views

mint and burn can be attacked by sandwiches

Lines of code Vulnerability details Impact The rewards of mint and burn are calculated based on the ratio of uTokenincluding debt and vToken, so it can be sandwiched by attackers. Proof of Concept Tools Used manual Recommended Mitigation Steps It is recommended to add the minimum receiving quanti...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•24 views

Wrong blocksPerYear calculation in WhitePaperInterestRateModel.sol

Lines of code Vulnerability details Impact In WhitePaperInterestRateModel.sol, File: contracts/WhitePaperInterestRateModel.sol 17 uint256 public constant blocksPerYear = 2102400; There is wrong calculation of blocksPerYear and blocksPerYear is the approximate number of blocks per year that is...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•27 views

Incorrect decimal handling in _startAuction, resulting in wrong auction.startBidBps

Lines of code Vulnerability details Shortfall.startAuction uses the oracle price of the underlying tokens to price the pool bad debt: Shortfall.sol 389: for uint256 i; i the price returned by priceOracle.getUnderlyingPrice has a number of decimals equal to 36 - vToken decimals. This means the...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/15 12:00 a.m.•18 views

Unspent allowance may break functionality in AMO

Lines of code Vulnerability details Unspent allowance may break functionality in AMO An unspent allowance may cause a denial of service during the calls to safeApprove in the AMO contract. Impact The AMO contract uses the safeApprove function to grant the Curve pool permission to spend funds whil...

6.5AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•16 views

the protocol using 3% GBC instead of 2%

Lines of code Vulnerability details Impact the protocol using 3% GBC instead of 2% as they mentioned in their docs, this may cause problem in the code implementation because the logic is based on 2% but the protocol allowing to use 3% of GBC. Proof of Concept the line that it mentioned that the...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•17 views

NOT CONFIRMED

Lines of code L1 Vulnerability details NOT CONFIRMED Assessed type Decimal --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•23 views

unstake() function: The unstake function permits the unstaking of multiple position NFTs from the same liquidity pool (LP) by the same lender. This opens the possibility for a lender to claim more Ajna token rewards than they are entitled to by staking and unstaking multiple NFTs associated with the same LP.

Lines of code Vulnerability details Impact The absence of a mechanism to prevent a lender from unstaking multiple NFTs for the same liquidity pool LP could potentially lead to the exploitation of the Ajna token reward system. A lender can mint, stake, and unstake multiple NFTs for the same LP fro...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•26 views

Logic error in _transferAjnaRewards function

Lines of code Vulnerability details Context: ajna-core/src/RewardsManager.sol: 836 / 837: function transferAjnaRewardsuint256 rewardsEarned internal 838: // check that rewards earned isn't greater than remaining balance 839: // if remaining balance is greater, set to remaining balance 840: uint25...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•15 views

Delegation rewards are not counted toward granting fund

Lines of code Vulnerability details Impact Each period reserves a reward for granting up to 3% GBC: Global Budget Constraint. The GBC is split into two parts: 1. 90% for proposal granting. Any proposal requesting more than 90% will revert. The total amount requested across winning proposals must...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•12 views

_transferAjnaRewards doesn't save the remaining rewards of a staker for the next transfer

Lines of code Vulnerability details Impact Staker will earn less than expected Proof of Concept On claimRewards function at transferAjnaRewards is being called to claim rewardsEarned for staker according to the tokenId, the issue here drop at if rewardsEarned ajnaBalance rewardsEarned =...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•24 views

Users may lose rewards

Lines of code Vulnerability details Impact In RewardsManager.sol we have claimRewards function: function claimRewards uint256 tokenId, uint256 epochToClaim external override StakeInfo storage stakeInfo = stakestokenId; if msg.sender != stakeInfo.owner revert...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•10 views

There can be a maximum of 11 proposals

Lines of code Vulnerability details Impact Overflow Proof of Concept The proposeExtraordinary function restricts that the result of the getMinimumThresholdPercentage function must be less than or equal to 1018. The maximum length of the fundedExtraordinaryProposals array is 10, but there is no...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•19 views

Race condition vulnerability in positionManager minting function

Lines of code Vulnerability details Impact race condition vulnerability can result in the issuance of duplicate token IDs. When multiple transactions are executed in quick succession attempting to mint tokens, they may end up being assigned the same ID due to a shared counter or variable used to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•16 views

Attacker can DoS create a extraordinary proposals

Lines of code Vulnerability details Impact An attacker can prevent the creation of proposals in ExtraordinaryFunding.solproposeExtraordinary by front-running the proposal, which will give him the same hash as the correct user desired, and setting endBlock to the past, which will invalidate the...

6.5AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•13 views

Inconsistence input of depositTime might lead to unexpected result

Lines of code Vulnerability details Impact Inconsistency by relying on depositTime at positions hashmap instead of reading the value from lenderInfo Proof of Concept The depositTime is being read from fromPosition.depositTime at moveLiquidity function and not from lenderInfo L268 and L285...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•14 views

Use of msg.sender in mayInteract Modifier

Lines of code Vulnerability details Impact The use of msg.sender in the mayInteract modifier in the contract. I have identified a potential vulnerability in the use of msg.sender. In this case, the vulnerability is caused by using msg.sender to authorize interactions with the contract. Since...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•16 views

Integer Overflow in ScreeningVote Function of StandardFunding.sol.

Lines of code Vulnerability details Impact In the screeningVote function of StandardFunding.sol contract, specifically in the line where the votes parameter is converted to a uint128 using the SafeCast.toUint128 function. The issue is that the votes parameter is not limited to 128 bits, which can...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•24 views

It is not possible to create or execute new extraordinary proposals after 10 funded Extraordinary Proposals

Lines of code Vulnerability details Impact With each executed offer, the value of getMinimumThresholdPercentage increases, resulting in the fact that when trying to create a new proposal or execute existing, getMinimumThresholdPercentage exceeds 1e18 and we catch an underflow error via...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•26 views

Extraordinary proposal can become stuck

Lines of code Vulnerability details Since standard and extraordinary proposals use the same treasury funds accounting variables and extraordinary voting period is long enough 1 month, it is possible that extraordinary proposal that was valid and gained enough votes will end up frozen: it might no...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•24 views

Missing Proposal Validations in Funding Contract.

Lines of code Vulnerability details Impact The Funding.sol contract's validateCallDatas function validates the targets, values, and calldatas parameters for a proposal but does not check if the proposal is valid based on the current state of the contract. For example, it does not check if the...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•17 views

Attacker can drain the token from the user's account

Lines of code Vulnerability details Vulnerability details Impact There is a potential vulnerability if the increaseLPAllowance function is not implemented safely and allows for arbitrary increases to the token allowance. File: ajna-core/src/PositionManager.sol pool.increaseLPAllowanceowner,...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•14 views

The design flaws have resulted in unfairness in the protocol.

Lines of code Vulnerability details Impact Ordinary traders are not aware that the contract does not have sufficient ajna tokens when receiving rewards, resulting in partial loss of ajna. Smart traders will check the contract token balance before claiming rewards, which leads to unfairness. Proof...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•24 views

stake() function: The provided stake function lacks checks to prevent a lender from staking multiple NFTs in the same Ajna pool. The function allows any owned position NFT to be staked without considering whether the lender has already staked in the pool. This potentially opens up the system to an abuse where a lender stakes multiple NFTs for the same liquidity position.

Lines of code Vulnerability details Impact The current stake function lacks checks to prevent a lender from staking multiple NFTs in the same Ajna pool. This could lead to an abuse of the system where a lender stakes multiple NFTs for the same liquidity position, potentially earning more rewards...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•22 views

Treasury accounting miss voters rewards

Lines of code Vulnerability details treasury is overstated over time as each distribution period it adds back the delegate rewards part, which is actually spent on voters rewards. I.e. it is updated with fundsAvailable - totalTokensRequested difference, while totalTokensRequested is limited to 90...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•19 views

Contracts are vulnerable to fee-on-transfer-token-related accounting issues

Lines of code Vulnerability details Vulnerability details Impact Without measuring the balance before and after the transfer, there's no way to ensure that enough tokens were transferred, in the cases where the token has a fee-on-transfer mechanic. If there are latent funds in the contract,...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•12 views

Unchecked increment in calculateRewards function of RewardsManager.sol.

Lines of code Vulnerability details Impact In the calculateRewards function, there is an unchecked increment in the for loop, in the code it can allow an attacker to cause an integer overflow in the calculateRewards function by manipulating the loop variable, resulting in incorrect rewards...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•20 views

Lack of Access Control in GrantFund Smart Contract's fundTreasury Function

Lines of code Vulnerability details Impact The fundTreasury function in the GrantFund.sol contract allows anyone to add funds to the contract's treasury without any access control, which can lead to unauthorized access to the contract's funds. The problem with this function is that it doesn't hav...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•15 views

Position NFT can be spammed with insignificant positions by anyone until rewards DoS

Lines of code Vulnerability details Impact The PositionManager.memorializePositionsparams method can be called by anyone per design, see 3rd party test cases and allows insignificantly small any value 0 positions to be attached to anyone else's positions NFT, see PoC. As a result, the...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•9 views

Insufficient Validation of Total Tokens Requested.

Lines of code Vulnerability details Impact In the proposeExtraordinary function in the Funding contract. Specifically, in the following line: L105 if uint256totalTokensRequested getSliceOfTreasuryMaths.WAD - getMinimumThresholdPercentage revert InvalidProposal; If the totalTokensRequested paramet...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•22 views

Imprecise block calculation

Lines of code Vulnerability details Vulnerability details Impact @dev Roughly equivalent to the number of blocks in 7 days. @dev Roughly equivalent to the number of blocks in 90 days. @dev Roughly equivalent to the number of blocks in 10 days. As described in the NatSpec comment above these are...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•19 views

Expiration Time Not Checked in moveStakedLiquidity Function

Lines of code Vulnerability details Impact Liquidity moves are time-sensitive operations and the duration within which they are executed is crucial. If a user sets the expiry time to 0, it means that there is no expiration time set for the liquidity move. This can potentially allow the liquidity...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•17 views

Standard voting favors proposals which ask for lower GBC

Lines of code Vulnerability details Impact Proposals which ask for higher % of the GBC have a serious disadvantage. Proof of Concept For simplicity, let's say there are only 3 projects in the screening stage. Project A asks for 90% GBC and projects B and C ask for 40% GBC each. Therefore, project...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•27 views

An expired parameter is required because there may be slippage in the calculation.

Lines of code Vulnerability details Impact Due to changes in interest rates, failure to process transactions in a timely manner may result in missing out on ideal rewards. Proof of Concept The calculation of the clainRewards function involves interest rates, which are variable. If...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•39 views

Division by Zero Vulnerability in _calculateNewRewards function.

Lines of code Vulnerability details Impact The calculateNewRewards function in the smart contract performs a division operation with totalInterestEarnedInPeriod, which could be zero, but there is a problem that can result in a division-by-zero error, causing the smart contract to behave...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/05/11 12:00 a.m.•10 views

Proposed Token Request Exceeds Available Funds Check Missing.

Lines of code Vulnerability details Impact The proposeStandard function in StandardFunding.sol contract does not include a direct check to ensure that the proposed tokens requested are less than or equal to the actual available funds for the distribution period. Instead, it only checks if the...

6.6AI score
SaveExploits0
Total number of security vulnerabilities10190