71 matches found
If newRatio can differ drastically from the old ibRatio attacks could take place
Handle tensors Vulnerability details Impact Consider L91 in Auction.sol. I'm not sure what the logic for updating the ibRatio in this case is. If the newRatio is larger/smaller than the old ibRatio than a user can mint/burn tokens in the basket contract, update the ratio, then burn/mint the...
Reentrancy through withdrawBounty
Handle jonah1005 Vulnerability details Impact The function settleAuction Auction.solL69-L109 calls withdrawBounty. However, there's no safety checks in addBounty function.Auction.solL126-L138 The attacker can add malicious contract through addBounty and hijack the control flow of settleAuction...
Certain view functions should never be used in code, only UI. They are easily manipulated.
Handle tensors Vulnerability details Impact The view functions in StablesConverter.sol can be manipulated to give incorrect answers by flashloan attacks. Using them within the code in a naive way can lead to lost funds. Example Recommendations Make sure the functions are only used as estimates fo...
Vault treats all tokens exactly the same that creates (huge) arbitrage opportunities.
Handle jonah1005 Vulnerability details Impact The v3 vault treats all valid tokens exactly the same. Depositing 1M DAI would get the same share as depositing 1M USDT. User can withdraw their share in another token. Though there's withdrawalProtectionFee 0.1 percent, the vault is still a no slippa...
SettV3.transferFrom block lock can be circumvented
Handle cmichel Vulnerability details Vulnerability Details The SettV3.transferFrom implements a blockLocked call to prevent users to call several functions at once, for example, deposit and then transferring the tokens. function blockLocked internal view requireblockLockmsg.sender block.number,...
Strategy.sol: startPool() can possibly be flashloaned
Handle hickuphh3 Vulnerability details Impact Since startPool is callable by anyone, an attacker can flash loan to first imbalance the pool, get the strategy to deposit in the imbalanced ratio, then rebalance the pool to the original ratio, thus causing the strategy to suffer from impermanent los...
Pools can be created without initial liquidity
Handle cmichel Vulnerability details Vulnerability Details The protocol differentiates between public pool creations and private ones starting without liquidity. However, this is not effective as anyone can just flashloan the required initial pool liquidity, call PoolFactory.createPoolADD, receiv...
FYTokens can be minted for free
Handle cmichel Vulnerability details The core issue is that one can force the protocol to do an arbitrary trade in the pool using Ladle.roll. The function allows specifying a base amount and the protocol will mint as many fyTokens as needed for the trade, and trade them in the pool. This can be...
Flashloan griefing attack
Handle cmichel Vulnerability details Funds from contracts that approved a join and implement the flashloan interface can be stolen. One can call Join.flashLoanvulnerablecontract, token, amount and the contract's balance will be decreased by the fees they have to pay for the flashloan. One can...
Missing overflow check in flashLoan
Handle @cmichelio Vulnerability details Vulnerability Details ERC20FlashMintUpgradeable.flashLoan does not check for an overflow when adding the fees to the flashloan amount. The functionality might have been copied from but this one already has overflow checks as it uses solidity 0.8.0. Impact...
function flashLoan is vulnerable to overflow/underflow and maxFlashLoan is not used
Handle paulius.eth Vulnerability details Impact function flashLoan is vulnerable to overflow/underflow when the fee is not 0. Although currently the fee is set to 0, there is a comment: "By default there is no fee, but this can be changed by overriding flashFee" As these contracts are upgradeable...