Lucene search
+L
Code423n4Most viewed

10190 matches found

Code423n4
Code423n4
•added 2021/12/19 12:00 a.m.•17 views

SingleNativeTokenExitV2 doesn't take input deadline to consideration

Handle kenzo Vulnerability details SingleNativeTokenExitV2 takes as input from the user a deadline for the trades. However, it does not use this input for the actual trade but sets the deadline to be block.timestamp. Impact Trades will not work as expected. User might set a deadline for the trade...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/19 12:00 a.m.•17 views

unchecked return value from transfer()

Handle JMukesh Vulnerability details Impact transfer does not check the return , due which transfer may get failed without reverting . some tokens does not revert on failure , they just return false Proof of Concept Tools Used manual review Recommended Mitigation Steps use safetransferFrom from o...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/19 12:00 a.m.•17 views

Annualized fee APY dependence on the frequency of executing a function

Handle Czar102 Vulnerability details Impact The APY of the annualized fee is dependent on the frequency of the execution of the BasketFacet::chargeOutstandingAnnualizedFee. If it is called more frequently, the compounding is more frequent and the APY is higher. For less used baskets, the APY migh...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/19 12:00 a.m.•17 views

Dishonest Stakers Can Siphon Rewards From xToken Holders Through The deposit Function In NFTXInventoryStaking

Handle leastwood Vulnerability details Impact xTokens is intended to be a representation of staked vault tokens. As the protocol's vaults accrue fees from users, these fees are intended to be distributed to users in an inconsistent fashion. NFTXInventoryStaking is one of the ways users can stake...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/18 12:00 a.m.•17 views

NFTXStakingZap Performs A Dangerous Equality Check Which Can Brick Contract

Handle leastwood Vulnerability details Impact NFTXStakingZap provides an interface for users to interact with NFTX vaults by adding ERC1155/ERC721 tokens as liquidity. The addLiquidity721WETH and addLiquidity1155WETH functions perform strict equality checks on the vaults balance for the...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/18 12:00 a.m.•17 views

NFTXMarketplaceZap Performs A Dangerous Equality Check Which Can Brick Contract

Handle leastwood Vulnerability details Impact NFTXMarketplaceZap provides an interface for users to interact with NFTX vaults by buying, selling and swapping ERC1155/ERC721 tokens. The mint721 and mint1155 functions perform strict equality checks on the vaults token balance for the...

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

Token mint without transfer

Handle csanuragjain Vulnerability details Impact User will be minted token without transferring any amount Proof of Concept 1. Owner has removed all tokens from the basket using removeToken function. So bs.tokens.length=0 2. User joins the pool using joinPool function. Now below happens: a. Since...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/17 12:00 a.m.•17 views

Contract can lose funds

Handle csanuragjain Vulnerability details Impact Fund loss Proof of Concept 1. Navigate to contract at 2. Assume owner created a Basket with 1 token A which is 0.1 USD 3. User joins the pool using joinPool function 4. Owner removes the token so that basket becomes empty and adds another token B...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/15 12:00 a.m.•17 views

Yearn token <> shares conversion decimal issue

Handle cmichel Vulnerability details The yearn strategy YearnYield converts shares to tokens by doing pricePerFullShare shares / 1e18: function getTokensForSharesuint256 shares, address asset public view override returns uint256 amount if shares == 0 return 0; // @audit should divided by...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/15 12:00 a.m.•17 views

Extension voting threshold check needs to rerun on each transfer

Handle cmichel Vulnerability details The Extension contract correctly reduces votes from the from address of a transfer and adds it to the to address of the transfer in case both of them voted on it before, but it does not rerun the voting logic in voteOnExtension that actually grants the...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/14 12:00 a.m.•17 views

SHOULD CHECK RETURN DATA FROM CHAINLINK AGGREGATORS

Handle defsec Vulnerability details Impact The sync function in the contract ChainlinkOracle.sol fetches the asset price from a Chainlink aggregator using the latestRoundData function. However, there are no checks on roundID, resulting in stale prices. The oracle wrapper calls out to a chainlink...

6.5AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/12 12:00 a.m.•17 views

Reward stuck if promotion cancel before all past reward claimed

Handle gzeon Vulnerability details Impact When owner call cancelPromotion, the contract 1. Delete the promotion struct L132 2. Return all token reserved for future epochs L133 If there are token left for previous epochs, they will be stuck in the contract as the promotion struct is gone. Proof of...

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

claimRewards Does Not Prevent Users From Claiming Rewards After A Promotion's End Epoch

Handle leastwood Vulnerability details Impact claimRewards allows a user to collect their TWAB calculated rewards for a provided set of epochIds. The contract utilises a claimedEpochs mapping which tracks claimed rewards per user. Each claimed epoch is represented by a single bit within a uint256...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/12 12:00 a.m.•17 views

Can drain any promotion rewards

Handle gzeon Vulnerability details Impact There are no checks to make sure epochId const promotionId = 1; const wallet2Amount = toWei'750'; const wallet3Amount = toWei'250'; await ticket.mintwallet2.address, wallet2Amount; await ticket.connectwallet2.delegatewallet2.address; await...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/10 12:00 a.m.•17 views

Publisher can scam users by changing license fees and using auction to freeze user funds

Handle 0x0x0x Vulnerability details Publisher can call changeLicenseFee to change fees. There is no maximum cap for this parameter. At first glance, because there is a timelock period of 1 day, the users have enough time to react. But if the publisher can start an auction and bondForRebalance. Th...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/09 12:00 a.m.•17 views

Lost fees due to precision loss in fees calculation

Handle kenzo Vulnerability details In fees calculation, division is being used in the midst of the calculation, not at the end of it. This leads to lost precision in fee amount as solidity doesn't save remainder of division. Division should happen at the end to maintain precision. Impact Lost fee...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/09 12:00 a.m.•17 views

Wrong emergencyWithdraw logic

Handle 0x1f8b Vulnerability details Impact The contract doesn't work as expected. Proof of Concept The method, emergencyWithdraw inside the contract yield/NoYield doesn't work as expected, the transfer was done with received value, and it should be done with amount, so the emergencyWithdraw never...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/08 12:00 a.m.•17 views

Withdraw from AaveVault will receive less than actual share

Handle gzeon Vulnerability details Impact AaveVault cache tvl and update it at the end of each push and pull. When withdrawing from LpIssuer, tokenAmounts is calculated using the cached tvl to be pulled from AaveVault. This will lead to user missing out their share of the accrued interest /...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/08 12:00 a.m.•17 views

Swap functions in ERC20 Vault will cause fund loss

Handle WatchPug Vulnerability details The current implementation of the two swap functions: swapExactInput and swapExactOutput in ERC20Vault.sol is using a wrong value for parameter recipient. Per the interface, the third parameter of trader.swapExactInput and trader.swapExactOutput is "recipient...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/07 12:00 a.m.•17 views

_swapExactOutputSingle() and _swapExactOutputMultihop() May Fail When Transfer Token to recipient

Handle Meta0xNull Vulnerability details Impact IERC20input.safeTransferFromaddressthis, recipient, options.limitAmount - amountIn; For safeTransferFrom to work it needs to have an enough approval. In this case, obviously this contract does not approve every recipient when Transfer Token, so we ca...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/06 12:00 a.m.•17 views

Fund freezing is possible as claimed reward tokens aren't accounted for by recoverTokens

Handle hyh Vulnerability details Impact Reward tokens accidently sent to the Stream contract cannot be recovered with recoverTokens if some reward tokens were already claimed with claimReward. As recoverTokens is the only recovering functionality in the contract the corresponding reward tokens wi...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/06 12:00 a.m.•17 views

depositToken has to be not equal rewardToken

Handle 0x0x0x Vulnerability details Creating a stream, where depositToken == rewardToken might be a use case. But since amounts of both of them are accumulated in different variables and there is a recoverTokens function. When depositToken == rewardToken, one can easily organize scams using strea...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/01 12:00 a.m.•17 views

MiningService.setBonding should use BONDING role instead of REINVESTOR one

Handle hyh Vulnerability details Impact BONDINGROLE cannot be managed after it was initialized. Proof of Concept setBonding set the wrong role via swapRole: Recommended Mitigation Steps Set BONDINGROLE instead of REINVESTORROLE in setBonding function: Now: function setBondingaddress bonding publi...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/01 12:00 a.m.•17 views

Wrong decimals returned by maltMarketPrice()

Handle gzeon Vulnerability details Impact maltMarketPrice in UniswapHandle return incorrect decimals of price when rewardDecimals maltDecimals else if rewardDecimals maltDecimals uint256 diff = maltDecimals - rewardDecimals; price = rewardReserves.mul10diff.mul10rewardDecimals.divmaltReserves;...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/01 12:00 a.m.•17 views

Unable to remove liquidity in Recovery Mode

Handle gzeon Vulnerability details Impact According to When the Malt price TWAP drops below a specified threshold eg 2% below peg then the protocol will revert any transaction that tries to remove Malt from the AMM pool ie buying Malt or removing liquidity. Users wanting to remove liquidity can...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/01 12:00 a.m.•17 views

Bonding doesn't work with fee-on transfer tokens

Handle cmichel Vulnerability details Certain ERC20 tokens make modifications to their ERC20's transfer or balanceOf functions. One type of these tokens is deflationary tokens that charge a certain fee for every transfer or transferFrom. Impact The Bonding.bond function will revert in the...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/12/01 12:00 a.m.•17 views

_getFirstSample returns wrong sample if count < sampleMemory

Handle cmichel Vulnerability details The MovingAverage.sol contract defines several variables that in the end make the samples array act as a ring buffer: sampleMemory: The total length buffer size of the samples array. samples is initialized with sampleMemory zero observations. counter: The...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/27 12:00 a.m.•17 views

Function may not be implemented

Handle jayjonah8 Vulnerability details Impact In StabilizerNode.sol the distributeSuply function calls the check function on the ISupplyDistributionController. Searching through the code base I didn't location where the function is actually implemented. If this is calling a function within the...

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

Missing scaling factor in recordKeyPurchase?

Handle cmichel Vulnerability details The Unlock.recordKeyPurchase function computes the maxTokens as: maxTokens = IMintableERC20udt.balanceOfaddressthis valueInETH / 2 + 2 valueInETH / grossNetworkProduct / grossNetworkProduct; Note that grossNetworkProduct was already increased by valueInETH in...

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

_totalSupply not updated on transferMint/Burn

Handle cmichel Vulnerability details The OverlayToken has a transferMint and transferBurn function which is supposed to act like a transfer followed by a mint/burn. However, a mint/burn updates the totalSupply see mint/burn but these functions do not. Recommended Mitigation Steps The transferMint...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/22 12:00 a.m.•17 views

User can refund the received airdropped (free) "key"

Handle GiveMeTestEther Vulnerability details Impact User can refund the received airdropped free "key". If a lot of users received a airdropped "key" they can drain the funds of the lock. e.g. key owner cannot withdraw anything, user that purchased a key can't cancel and refund. Proof of Concept ...

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

_transferBurn not decrementing totalSupply of OVL after burn

Handle hubble Vulnerability details Impact The function transferBurn is called by both transferFromBurn and transferBurn which again is used when unwinding or liquidation of a position in OI. Proof of Concept File : ovl/OverlayToken.sol file line 194 : function transferBurn address sender, addres...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/18 12:00 a.m.•17 views

function distribute() Allow Certain Users Transfer Third Persons Token aka Users'Wallet into Contract

Handle Meta0xNull Vulnerability details Impact function distributeToTransmuteruint256 amount internal token.approvetransmuter, amount; In Alchemist.sol, here is where the Token Approved. function distributeaddress origin, uint256 amount public onlyWhitelisted runPhasedDistribution...

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

Does not check uniqueness of ShareHolder

Handle hack3r-0m Vulnerability details does not check if there is already a shareholder before creating a new shareholder. this will cause an issue in findShareHolder since it will return the first shareholder in the array while there are more than one. --- The text was updated successfully, but...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/17 12:00 a.m.•17 views

FeeSplitter: No sanity check to prevent shareholder from being added twice.

Handle GreyArt Vulnerability details Impact It is possible for duplicate shareholders to be added. These shareholders will get more than intended when sendFee is called. Recommended Mitigation Steps Ensure that the accounts array is sorted in setShareholders. for uint256 i = 0; i 0 requireaccount...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/17 12:00 a.m.•17 views

Ensure on-chain that cache is synced

Handle GreyArt Vulnerability details Impact Currently, many core operations like NestedFactory.create, NestedFactory.swapTokenForTokens are dependent on the assumption that the cache is synced before these functions are executed however this may not necessarily be the case. Proof of Concept 1...

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

setGuardian() Privilage Escalation Causing Governance Lose Control of The Contract

Handle Meta0xNull Vulnerability details Impact governance = guardian The Guardian will become Governance of the Contract which is Not Expected. Original Governance will lose control of this contract if they call setGuardian with Address/Key beyong their control. Proof of Concept Tools Used Manual...

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

Newly Registered Assets Skew Consultation Results

Handle leastwood Vulnerability details Impact The TwapOracle.consult function iterates over all token pairs which belong to either VADER or USDV and then calculates the price of the respective asset by using both UniswapV2 and Chainlink price data. This helps to further protect against price...

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

VaderPoolV2.rescue results in loss of funds rather than recoverability

Handle TomFrench Vulnerability details Impact Any unaccounted for tokens on VaderPoolV2 can be siphoned off by anyone Proof of Concept VaderPoolV2 has a rescue function which allows any unaccounted for tokens to be recovered. However there is no access control on this function which means than...

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

BasePool.swap() Is Callable By Anyone

Handle leastwood Vulnerability details Impact The BasePool.swap function differs from its implementation in BasePoolV2.swap in which it lacks an onlyRouter modifier. This ensures that users cannot call this function directly as VaderRouter.swap performs some necessary input validation which can b...

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

Zap contract's redeem() function doesn't check which token the user wants to receive

Handle Ruhum Vulnerability details Impact In the redeem function, the user can pass a token address. That's the token they receive in return for the ibbtc they give back. Because of missing address checks the user can provide any possible ERC20 token here without the function reverting. Although...

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

ERC20ConvictionScore._writeCheckpoint` does not write to storage on same block

Handle cmichel Vulnerability details In ERC20ConvictionScore.writeCheckpoint, when the checkpoint is overwritten checkpoint.fromBlock == blockNumber, the new value is set to the memory checkpoint structure and never written to storage. // @audit this is MEMORY, setting new convictionScore doesn't...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/11/09 12:00 a.m.•17 views

Should a Chainlink aggregator become stuck in a stale state then TwapOracle will become irrecoverably broken

Handle TomFrench Vulnerability details Impact Inability to call consult on the TwapOracle and so calculate the exchange rate between USDV and VADER. Proof of Concept Should any of the Chainlink aggregators used by the TwapOracle becomes stuck in such a state that the check on L143-146 of...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/30 12:00 a.m.•17 views

pricePerShare might become stale and cause to lose user funds, as update is not enforced

Handle kenzo Vulnerability details In WrappedIbbtcEth, as the code says, updatePricePerShare must be called once in a while to ensure pricePerShare is up to date. However the contract is not enforcing or validating it in any way. If for example the external server that runs the periodic update...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/30 12:00 a.m.•17 views

The design of wibBTC is not fully compatible with the current Curve StableSwap pool

Handle WatchPug Vulnerability details Per the documentation, wibBTC is designed for a Curve StableSwap pool. However, the design of wibBTC makes the balances change dynamically and automatically. This is unusual for an ERC20 token, and it's not fully compatible with the current Curve StableSwap...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/28 12:00 a.m.•17 views

MochiTreasuryV0.sol Is Unusable In Its Current State

Handle leastwood Vulnerability details Impact MochiTreasuryV0.sol interacts with Curve's voting escrow contract to lock tokens for 90 days, where it can be later withdrawn by the governance role. However, VotingEscrow.vy does not allow contracts to call the following functions; createlock,...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/28 12:00 a.m.•17 views

Inconsistent ERC20 function may lead to DOS and unexpected behaviour

Handle gzeon Vulnerability details Impact There are 2 important yet similar concept in this wrapper contract, namely "SHARE" and "BALANCE". SHARE equivalent to the number of underlying ibbtc and is stored in balance as the native value, while BALANCE is SHAREpricepershare and is the return value ...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/27 12:00 a.m.•17 views

Debt accrual is path-dependant and inaccurate

Handle cmichel Vulnerability details The total debt in MochiVault.accrueDebt increases by the current debt times the debt index growth. This is correct but the total debt is then reduced again by the calling user's discounted debt, meaning, the total debt depends on which specific user performs t...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/27 12:00 a.m.•17 views

anyone can create a vault by directly calling the factory

Handle jonah1005 Vulnerability details Impact MochiVaultFactory.solL26-L37 There's no permission control in the vaultFactory. Anyone can create a vault. The transaction would be reverted when the government tries to deploy such an asset. As the protocol checks whether the vault is a valid vault b...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2021/10/27 12:00 a.m.•17 views

Improper Validation Of create2 Return Value

Handle leastwood Vulnerability details Impact The BeaconProxyDeployer.deploy function is used to deploy lightweight proxy contracts that act as each asset's vault. The function does not revert properly if there is a failed contract deployment or revert from the create2 opcode as it does not...

7AI score
SaveExploits0
Total number of security vulnerabilities5000