Lucene search
+L
Code423n4Recent

10190 matches found

Code423n4
Code423n4
added 2022/05/20 12:0 a.m.6 views

The bool return value of variable success is not checked/handled in removeCollateral() of NFTPairWithOracle.sol

Adding this issue from 77 which highlights a high-risk issue dupe of 21 --- The text was updated successfully, but these errors were encountered: All reactions...

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

Griefing attack by transferring aTokens to the contract

Originally part of a QA report by Tadashi 69 Griefing attack by transferring aTokens to the contract Summary: tokenToShares uses the following formula for computing the total shares of an user: return supply == 0 ? tokens : tokens.mulsupply.divaToken.balanceOfaddressthis; An attacker wishing to...

6.5AI score
SaveExploits0
Code423n4
Code423n4
added 2022/05/19 12:0 a.m.14 views

AuraLocker.sol lock() can be used to dos user

Lines of code Vulnerability details Impact User funds permanently stuck in AuraLocker Proof of Concept The lock function allows anyone to deposit and lock tokens for another address. If the most recent lock is not expired, it pushes a new lock to the array of locks for that user in the following...

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

Alchemist can mint AlTokens above their assigned ceiling by calling lowerHasMinted()

Lines of code Vulnerability details Impact An alchemist / user can mint more than their alloted amount of AlTokens by calling lowerHasMinted before they reach their minting cap. Proof of Concept Function mint in AlchemicTokenV2Base.sol function mintaddress recipient, uint256 amount external...

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

[gALCX.sol] Attacker can make the contract unusable when totalSupply is 0

Lines of code Vulnerability details Impact An attacker can make the contract unusable when totalSupply is 0. Specifically, bumpExchangeRate function does not work correctly which results in making stake, unstake and migrateSource functions that do not work as expected. Proof of Concept Here are...

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

DoS in wrap and unwrap

Lines of code Vulnerability details Impact the code is doing wrong check, so when things will work it will revert. Proof of Concept In the function wrap there is this lines: if error = ICERC20token.mintamount != NOERROR revert FuseErrorerror; but mint returns the amount that minted, so when error...

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

[WP-H1] Debt can be repaid with a depegged underlyingToken, which can be exploited by arbitrageurs and drives the market price of alToken to match the worst depegged underlyingToken

Lines of code Vulnerability details function normalizeUnderlyingTokensToDebtaddress underlyingToken, uint256 amount internal view returns uint256 return amount underlyingTokensunderlyingToken.conversionFactor; function repayaddress underlyingToken, uint256 amount, address recipient external...

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

A well financed attacker could prevent any other users from minting synthetic tokens

Lines of code Vulnerability details Impact In the AlchemistV2 contract, users can deposit collateral to then borrow/mint the synthetic tokens offered by the protocol. The protocol also defines a minting limit that specifies how many synthetic tokens can be minted in a given time period. This exis...

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

[WP-H3] Lack of liquidation makes it possible for alToken to be undercollateralized

Lines of code Vulnerability details function liquidate address yieldToken, uint256 shares, uint256 minimumAmountOut external override lock returns uint256 onlyWhitelisted; checkArgumentshares 0; YieldTokenParams storage yieldTokenParams = yieldTokensyieldToken; address underlyingToken =...

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

[WP-H2] Always use a 1:1 ratio for all the underlyingTokens when calculating the collateral value is flawed and can cause systemic failure when one of the underlyingTokens is depegged

Lines of code Vulnerability details function normalizeUnderlyingTokensToDebtaddress underlyingToken, uint256 amount internal view returns uint256 return amount underlyingTokensunderlyingToken.conversionFactor; function totalValueaddress owner internal view returns uint256 uint256 totalValue = 0;...

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

AutoleverageBase: Must approve 0 first

Lines of code Vulnerability details Impact Some tokens like USDT do not work when changing the allowance from an existing non-zero allowance value.They must first be approved by zero and then the actual allowance must be approved. Proof of Concept Tools Used None Recommended Mitigation Steps...

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

TransmuterBuffer.sol calls depositUnderlying with no slippage bounds

Lines of code Vulnerability details Impact Loss of funds in TransmuterBuffer Proof of Concept If the buffer is called during and unfavorable time then a large portion of deposited funds may be lost due to slippage because deposit is called with 0 as the minimum out allowing any level of slippage...

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

maxFee is not checked against a max value while being updated

187 comment Warden: catchup Lines of code Vulnerability details changeFee maxFee should be checked against a maximum value like 10% to make sure it is not set too high by mistake. Impact maxFee can be set beyond limits which would mess up fee calculations. Proof of Concept getTransferFee function...

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

TransmuterBuffer's setAlchemist will freeze deposited funds

Lines of code Vulnerability details Currently setAlchemist doesn't check whether there are any open positions left with the old Alchemist before switching to the new one. As this require a number of checks the probability of operational mistake isn't low and it's prudent to introduce the main...

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

ATB-01M: Inexplicable Capability of Self-Limit Reduction

Lines of code Vulnerability details ATB-01M: Inexplicable Capability of Self-Limit Reduction | File | Lines | Type ---|---|--- AlchemicTokenV2Base.sol | L189-L191 | Access Control Description The mint function is meant to prevent arbitrary amount mints via the totalMinted variable being guarantee...

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

Validate input variables bounds

83 comment Warden: throttle fee variables bounds are not checked. this can lead to expensive mistake --- The text was updated successfully, but these errors were encountered: All reactions...

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

Excluded user who added liquidity and then was unexcluded can block the withdrawals

83 comment Warden: throttle Excluded user who added liquidity didn't account for totalLiquidty increase. Later, if he is removed from excluded list and tries to remove liqudity, totalLiquidty will be subtracted which can lead to DoS for other user who want to remove liquidity Not sure if this is...

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

AlchemicTokenV2Base minters can always surpass mint ceiling threshold

Lines of code Vulnerability details AlchemicTokenV2Base's lowerHasMinted function has onlyWhitelisted access control. Any minter is whitelisted, it is required to be able to run mint. Each minters' mint total amount is controlled by totalMinted cumulative counter, which can be reduced by running...

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

Exchange Rate Race Condition

Lines of code Vulnerability details GAX-01M: Exchange Rate Race Condition | File | Lines | Type ---|---|--- gALCX.sol | L69-L81 | Improper State Assumption Description The gALCX contains a race condition whereby whenever the contract has no stakes such as when the contract is first deployed the...

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

TransmuterBuffer's _alchemistWithdraw use hard coded slippage that can lead to user losses

Lines of code Vulnerability details exchange - exchange - alchemistWithdraw is user funds utilizing call sequence and the slippage hard coded to 1% there can cause a range of issues. For example, if there is not enough shares, the number of shares to withdraw will be unconditionally reduced to th...

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

New gALCX token denomination can be depressed by the first depositor

Lines of code Vulnerability details An attacker can become the first depositor for a recently created gALCX contract, providing a tiny amount of ALCX tokens by calling stake1 raw values here, 1 is 1 wei, 1e18 is 1 ALCX. Then the attacker can directly transfer, for example, 10^6 1e18 - 1 of ALCX t...

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

registerAsset misuse can permanently disable TransmuterBuffer and break the system

Lines of code Vulnerability details TransmuterBuffer's refreshStrategies is the only way to actualize yieldTokens array. The function requires registeredUnderlyings array to match current Alchemist's supportedUnderlyingTokens. In the same time registeredUnderlyings can be only increased via...

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

If totalShares for a token falls to zero while there is pendingCredit the contract will become stuck

Lines of code Vulnerability details Impact It is possible for the contract to become stuck and unable to perform any actions if the totalShares of a yield token fall to zero while there is some pendingCredit still to be paid. It will then be impossible to call deposit or withdraw functions, mints...

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

procee yield can be sandwiched by whales

Lines of code Vulnerability details Impact YieldManager.solL142-L171 YieldManager distributes yield according to the current state. Big whales can deposit into the protocol before the process yield is called and left the project. Sandwich attacks are hard to mitigate and whales can always extract...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/05/15 12:0 a.m.19 views

hard-coded slippage may freeze user funds during market turbulence (resubmit to downgrade severity)

Lines of code Vulnerability details Impact GeneralVault.solL125 GeneralVault set a hardcoded slippage control of 99%. However, the underlying yield tokens price may go down. If Luna/UST things happen again, users' funds may get locked. LidoVault.solL130-L137 Moreover, the withdrawal of the...

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

LidoVault: Premature return after sending ETH

Lines of code Vulnerability details Details & Impact The require check is performed after exiting the function, meaning that the ETH transfer’s validity check is skipped. This would thus cause invalid withdrawals to be erroneously processed as valid. Recommended Mitigation Steps Swap the require...

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

Ether can be locked in the ConvexCurveLPVault contract without a way to retrieve it

Lines of code Vulnerability details Impact If a borrower deposits Curve LP tokens into the ConvexCurveLPVault contract via the payable function GeneralVault.depositCollateraladdress asset, uint256 amount and accidentally sends a non-zero Ether value with it, then the Ether value sent will be lock...

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

[WP-H5] LidoVault.sol Wrong implementation can cause the users to lose their funds when withdrawing ETH

Lines of code Vulnerability details function withdrawFromYieldPool address asset, uint256 amount, address to internal override returns uint256 address LIDO = addressesProvider.getAddress'LIDO'; if asset == address0 // Case of ETH withdraw request from user, so exchange stETH - ETH via curve uint2...

6.6AI score
SaveExploits0
Code423n4
Code423n4
added 2022/05/15 12:0 a.m.14 views

[LidoVault.sol][_withdrawFromYieldPool] Should not call return receivedETHAmount before the require check

Lines of code Vulnerability details Impact It is possible that users cannot receive ETH if sending ETH to users is not successful because the require check is unreachable. Proof of Concept withdrawFromYieldPool function executes the following code if user requests ETH withdrawal. if asset ==...

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

ETH transefer is not checked properly

Lines of code Vulnerability details Title ETH transefer is not checked properly Impact Function will return successfully even if the transfer of ETH failed Proof of Concept in smart-contracts/LidoVault.solL141-L142 the function returns before checking that the ETH is sent properly. This may cause...

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

At LidoVault.sol, _withdrawFromYieldPool()function, ETH transfer return value is not checked

Lines of code Vulnerability details Impact At withdrawFromYieldPool ETH transfer return value is not checked as the return statement at line 141 breaks the return value checking. Proof of Concept function withdrawFromYieldPool address asset, uint256 amount, address to internal override returns...

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

Possible lost msg.value

Lines of code Vulnerability details Impact Possible lost value in depositCollateral function call Proof of Concept In call depositCollateral can will send value and the asset can be an ERC20!= address0, if LidoVault and ConvexCurveLPVault contract receive this call the fouds will lost Also in...

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

C4-004 : Centralization Risk

112 comment Warden: defsec Impact - LOW The system is heavily relies on the ExecutorManager. Therefore, It contains centralization risk If the execution manager is EOA and captured. Proof of Concept 1. Navigate to the following contract...

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

L10: Deposits don’t work with FoT tokens

78 comment Warden: hickuphh3 Line References Description FoT token deposits are not supported because amount is used for internal accounting, but the actual amount received will be less than it due to the fee. I gave a low severity rating because of the existence of a token whitelist. Referenced...

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

ConvexCurveLPVault's _transferYield can become stuck with zero reward transfer

Lines of code Vulnerability details Now there are no checks for the amounts to be transferred via transferYield and processTreasury. As reward token list is external and an arbitrary token can end up there, in the case when such token doesn't allow for zero amount transfers, the reward retrieval...

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

User may lose ETH when depositing stETH

Lines of code GeneralVault.solL75-L89 LidoVault.solL79-L104 Vulnerability details Impact When the depositCollateral function is used in the LidoVault.sol contract, a user depositing stETH may mistakenly have a non-zero msg.value. The ETH would be passed to the contract and the user would lose tha...

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

Users Can Game Yield Distributions

Lines of code Vulnerability details Impact processYield restricts who can call this function to just the vault admin. Upon being processed, the treasury receives its fair share of the yield and the rest is transferred to the YieldManager.sol contract. To distribute yield, the manager calls...

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

Return before require

Lines of code Vulnerability details Impact Lose of funds Proof of Concept In the function withdrawFromYieldLidoVault.sol after transferring ETH there is a return and just after there is a require. This require will never be reached as the return finishes the execution. As the result the transfer...

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

Initialization function can be front-run

Lines of code Vulnerability details Impact The call to the initialize function can be front-run, and a malicious provider can be passed in and set to addressesProvider on any contract that inherits GeneralVault. This is significant because the onlyAdmin modifier checks if the msg.sender is...

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

return before require statement

Lines of code Vulnerability details Impact Function LidoVaultwithdrawFromYieldPool returns before the return value of call is validated, so if the call fails the function finishes execution and the user doesn't receive ETH Proof of Concept Tools Used Manual review Recommended Mitigation Steps pla...

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

depositCollateral allows user's ETH sent along with the tx to be stuck forever

Lines of code Vulnerability details Impact LidoVault and ConvexCurveLPVault both inherit from GeneralVault that implement the method depositCollateral. This method has the keyword payable so it allows users to send ETH with the tx. depositToYieldPool that is called inside depositCollateral in bot...

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

[WP-H12] Wrong implementation of ConvexCurveLPVault#withdrawOnLiquidation() may cause the positions collateralized with ConvexCurveLP unbale to be liquidated as withdrawOnLiquidation() will always fail

Lines of code Vulnerability details function withdrawuint256 amount, address to internal returns uint256 // Withdraw from Convex address baseRewardPool = getBaseRewardPool; IConvexBaseRewardPoolbaseRewardPool.withdrawAndUnwrapamount, true; // Deliver Curve LP Token...

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

The check for value transfer success is made after the return statement in _withdrawFromYieldPool of LidoVault

Lines of code Vulnerability details Impact Users can lose their funds Proof of Concept The code checks transaction success after returning the transfer value and finishing execution. If the call fails the transaction won't revert since requiresent, Errors.VTCOLLATERALWITHDRAWINVALID; won't execut...

7.3AI score
SaveExploits0
Code423n4
Code423n4
added 2022/05/15 12:0 a.m.10 views

User does not get funds if sending ETH in LidoVault.sol fails, funds stay suck in the contract

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. If the user uses smart contract to interact with the protocol with no receive/ payable fallback function, sending of ETH to the user will fail and the ETH would stay in the contract and withdraw action...

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

Unchecked call in _withdrawFromYieldPool

Lines of code GeneralVault.solL100-L128 LidoVault.solL122-L149 Vulnerability details Impact In the withdrawFromYieldPool function in LidoVault.sol, the receivedETHAmount value is returned before the sent value for the call function is checked on line 142. When withdrawCollateral is called in...

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

Title: Yield can be unfairly divided because of MEV/Just-in-time stablecoin deposits

Lines of code Vulnerability details Impact An attacker can use MEV via gas auction or Flashbots or control of miners to cause an unfair division of yield. By providing a very large relative to the size of all other stablecoin deposits combined stablecoin deposit Just-in-Time before an admin's cal...

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

Reward Manager of the Convex Base Reward Pool Can DoS processYield()

Lines of code Vulnerability details Impact The ConvexCurveLPVault.sol contract allows users to earn a yield on curve token deposits. Rewards are paid out in native CRV and CVX tokens but the reward manager of the base pool may opt to add extra rewards. Because the reward manager has the ability t...

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

Overexert on-chain slippage/loss control may cause users' funds to be frozen in the contract

Lines of code Vulnerability details requirewithdrawAmount = amount.percentMul9900, Errors.VTWITHDRAWAMOUNTMISMATCH; The GeneralVault.sol contract comes with a on-chain slippage/loss control to ensure the output amount is no more than 1% less of the requested amount. This can be a problem when the...

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

low-level call not validated in lidoVault

Lines of code Vulnerability details Impact In lines 140 and 141 a low-level transfer is performed and first it is reversed and then it is validated with the require if it was done correctly. This can generate many problems, since the transaction may not be carried out and a message may be returne...

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

User can forfeit other user rewards

Lines of code Vulnerability details Impact User can forfeit other user rewards by giving a higher startIndex in getReward function Proof of Concept 1. Assume User B has not received any reward yet so that his userClaimstokenUser B=0 2. User A calls getReward function with account as User B and...

6.7AI score
SaveExploits0
Total number of security vulnerabilities10190