Lucene search
K
Code423n4Recent

10190 matches found

Code423n4
Code423n4
added 2022/01/28 12:0 a.m.12 views

OpenLevV1Lib's and LPool's doTransferOut functions call native payable.transfer, which can be unusable for smart contract calls

Handle hyh Vulnerability details Impact When OpenLev operations use a wrapped native token, the whole user withdraw is being handled with a payable.transfer call. This is unsafe as transfer has hard coded gas budget and can fail when the user is a smart contract. This way any programmatical usage...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.4 views

SHOULD CHECK RETURN DATA FROM CHAINLINK AGGREGATORS

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

6.5AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.7 views

approve return value is ignored

Handle robee Vulnerability details Some tokens don't correctly implement the EIP20 standard and their approve function returns void instead of a success boolean. Calling these functions with the correct EIP20 function signatures will always revert. Tokens that don't correctly implement the latest...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.6 views

The wrap and unwrap functions lack access control, allowing anyone to consume the convexToken in the contract

Handle cccz Vulnerability details Impact In the wrap and unwrap functions of the ConvexYieldWrapper contract, due to the lack of access control, anyone can consume the convexToken in the contract function wrapaddress to, address from external require!isShutdown, "shutdown"; uint256 amount =...

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

anyone can change Parameters state

Handle jayjonah8 Vulnerability details Impact In BurnFlashStakeDeposit.sol the parameterize function can be called by anyone setting all the Parameters state in the contract. A user should not be able to do this. This function deals with important governance decisions being execute and should onl...

7.2AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.10 views

addVault and removeVault lack validation of caller address

Handle cccz Vulnerability details Impact The addVault and removeVault functions of the ConvexYieldWrapper contract lack validation of the caller address, allowing anyone to add or remove vaults from other addresses function addVaultbytes12 vaultId external address account =...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.8 views

Oracle prices could be not fresh

Handle 0x1f8b Vulnerability details Impact Unsafe oracle call. Proof of Concept The contract Cvx3CrvOracle doesn't check that the data is fress, it call the method latestRoundData, this method allow you to run some extra validations, but these validations were not made. According to the chain.lin...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.8 views

ERC20 transfer might fail

Handle hack3r-0m Vulnerability details while withdrawing incentives, the contract does not check if erc20 transfer was successful or not, if due to minor rounding error at 17th/18th decimal place, which is possible and the contract does not have enough token to make the transfer and hence false i...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/28 12:0 a.m.9 views

Unsecure oracle price

Handle 0x1f8b Vulnerability details Impact The oracle price use an unsecure calculation. Proof of Concept The contract Cvx3CrvOracle use the min price of dai, usdt and usdt instead of the average, so if an attacker is able to compromise the oracle end point, and change one of them, the contract...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

Unchecked return value for token.transfer call

Handle WatchPug Vulnerability details It is usually good to add a require-statement that checks the return value or to use something like safeTransfer; unless one is sure the given token reverts in case of a failure. Instances include: token.transfermsg.sender, amount; token.transfermsg.sender,...

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

Pair creation can be denied

Handle cmichel Vulnerability details The LaunchEvent.createPair requires that no previous pool was created for the WAVAX token pair. function createPair external isStoppedfalse atPhasePhase.PhaseThree address wavaxAddress, address tokenAddress = addressWAVAX, addresstoken ; // @audit grief: anyon...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

Improper Upper Bound Definition on the Fee

Handle Jujic Vulnerability details Impact The rJoePerSec does not have any upper or lower bounds. Values that are too large will lead to reversions in several critical functions. Proof of Concept function updateEmissionRateuint256 rJoePerSec external onlyOwner updatePool; rJoePerSec = rJoePerSec;...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.10 views

Reentrancy in withdrawGovernanceAsset

Handle 0x1f8b Vulnerability details Impact The method withdrawGovernanceAsset it's vulnerable to reentrancy attacks. Proof of Concept The method FlashGovernanceArbiter.withdrawGovernanceAsset it's vulnerable to reentrancy attacks because the flag stored in pendingFlashDecision it's deleted AFTER...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.6 views

Check transferFrom is from msg.sender

Handle mics Vulnerability details The following functions are taking money from a user but not necessary on its control. If a user sets more allowance than they have to, for example if they want to those functions many times and don't want to call approve again, then their funds can be stolen by...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.6 views

createPair can be griefed to never work

Handle harleythedog Vulnerability details Impact The whole point of the LaunchEvent.sol contract is to gather token and WAVAX to be added to a JoePair. Looking at the JoeRouter02.sol code here, I am not seeing anything preventing a griefer from creating a pair for token and WAVAX before the...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.10 views

Anyone can withdraw others

Handle mics Vulnerability details Anyone can withdraw users shares. Although we think that they are sent to the right address, it is still 1 not the desired behavior 2 can be dangerous if the receiver is a smart contract 3 the receiver may not know someone withdraw him XOLE.withdrawReward...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.6 views

No upper limit on coolDownTimeInSeconds allows funds to be locked sNOTE owner.

Handle TomFrenchBlockchain Vulnerability details Impact Inability for sNOTE holders to exit the pool in the case of ownership over SNOTE contract being compromised/malicious. Proof of Concept sNOTE works on a stkAAVE model where users have to wait a set cooldown period before being able to reclai...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.10 views

LaunchEvent's createPair can be cause to always revert

Handle UncleGrandpa925 Vulnerability details Impact This issue impacts all LaunchEvent, forcing the issuer to write additional contracts to be able to createPair in LaunchEvent else it will always revert. Issue & Proof of Concept In LaunchEvent.sol, the function createPair is supposed to be calle...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.11 views

Launch event creation can be denied 2

Handle cmichel Vulnerability details The RocketJoeFactory.createRJLaunchEvent requires that no previous pool was created for the WAVAX token pair. function createRJLaunchEvent address issuer, uint256 phaseOneStartTime, address token, uint256 tokenAmount, uint256 tokenIncentivesPercent, uint256...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

transferFrom return value unchecked

Handle hack3r-0m Vulnerability details createRJLaunchEvent is followed by initialization of launch event, the balance of launch event address is what is supplied by above mentioned safe transfer call According to EIP20, transferFrom returns boolean function transferFromaddress from, address to,...

7.1AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.7 views

Wrong implementation of transferAndCall

Handle wuwe1 Vulnerability details Proof of Concept 1. Transferring token twice in this function. 2. Missing event Transferaddress indexed from, address indexed to, uint value, bytes data; Recommended Mitigation Steps Remove super.transferto, value Emit the Transfer event as: --- The text was...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.10 views

Users' tokens can be stuck inside LaunchEvent if the token doesn't revert on failed transfers

Handle UncleGrandpa925 Vulnerability details Impact Users' tokens can be stuck inside LaunchEvent if the token doesn't revert on failed transfers. Issue When users call withdrawIncentives, if for any reasons the token transfer fails & the token doesn't revert but only returns a boolean, the user'...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

transferAllowed() function can be called by anyone

Handle jayjonah8 Vulnerability details Impact In ControllerV1.sol the transferAllowed function can be called by anyone and supplied with arbitrary values to manipulate the protocol as if it was the LPool address. This function should only be callable by the LPool as can be seen in the mintAllowed...

7.2AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.10 views

Lack of input checks (withrawal penalties should always be greater than 0)

Handle pedroais Vulnerability details Impact If penalties are set to 0 the protocol would be vulnerable to price manipulations like the one described in the contest documentation. Proof of Concept The protocol uses economic penalties to punish withdraws to protect against economic price...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

LP Tokens May Be Locked in Contract Due to allowEmergencyWithdraw() in Stage 3

Handle kirk-baird Vulnerability details Impact The function allowEmergencyWithdraw may be called by the rocketJoeFactory.owner at any time. If it is called while the protocol is in Stage 3 and a pair has been created then the LP tokens will be locked and both issues and depositors will be unable ...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

Use safeTransferFrom instead of transferFrom

Handle saian Vulnerability details Impact transferFrom might return false in some implementation that will go unchecked, use a require or openzeppelin's safeTransferFrom Proof of Concept Tools Used Manual Analysis Recommended Mitigation Steps Use a require statement to check return value or use...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

Unchecked token transfers are used in LaunchEvent and RocketJoeFactory

Handle hyh Vulnerability details Impact For some ERC20 tokens no revert occurs but false is returned if transfer failed for any reason. If this isn't checked, the system will enter a wrong state with an accounted, but not executed transfer. This effect can pile up, messing the logic altogether...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

Add liquidity before phase 3 can force the launch event to stop

Handle WatchPug Vulnerability details function createPair external isStoppedfalse atPhasePhase.PhaseThree address wavaxAddress, address tokenAddress = addressWAVAX, addresstoken ; require factory.getPairwavaxAddress, tokenAddress == address0 || IJoePair IJoeFactoryfactory.getPairwavaxAddress,...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

Uninitialized RocketJoeStaking.lastRewardTimestamp can inflate rJoe supply

Handle cmichel Vulnerability details The RocketJoeStaking.lastRewardTimestamp is initialized to zero. Usually, this does not matter as updatePool is called before the first deposit and when joeSupply = joe.balanceOfaddressthis == 0, it is set to the current time. function updatePool public if...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.7 views

Unchecked return value for token.transferFrom call

Handle WatchPug Vulnerability details It is usually good to add a require-statement that checks the return value or to use something like safeTransferFrom; unless one is sure the given token reverts in case of a failure. /// ... /// @param token Token that will be issued through this launch event...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.14 views

Use of deprecated Chainlink API

Handle 0x1f8b Vulnerability details Impact Deprecated API stops working. Prices cannot be obtained. Protocol stops and contracts have to be redeployed. Proof of Concept The contracts use Chainlink’s deprecated API latestAnswer. Such functions might suddenly stop working if Chainlink stopped...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

addressShare is not updated on arbRestake

Handle hack3r-0m Vulnerability details when intialStake is called, it mints the nft, and on before transfer hook, addressSharesmsg.sender is credited with minted shares when redeemNFT is called, it burns the nft, and on before transfer hook, addressSharesmsg.sender is subtracted with burned share...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.7 views

Launch event creation can be denied

Handle cmichel Vulnerability details The RocketJoeFactory.createRJLaunchEvent requires that no previous launch event was already created for the token. function createRJLaunchEvent address issuer, uint256 phaseOneStartTime, address token, uint256 tokenAmount, uint256 tokenIncentivesPercent, uint2...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

Potential DoS

Handle robee Vulnerability details the balance of outputToken is checked to be exactly a specified value that is not declared in this specific function. Therefore, a malicious user can transfer to the contract address tiny amount of tokens and the user transactions will always revert. Potential D...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

transfer return value of a general ERC20 is ignored

Handle mics Vulnerability details Need to use safeTransfer instead of transfer. As there are popular tokens, such as USDT that transfer/trasnferFrom method doesn’t return anything. The transfer return value has to be checked as there are some other tokens that returns false instead revert, that...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.5 views

Multiple Reentrancy possibilities

Handle 0v3rf10w Vulnerability details Impact Reentrancy possibilities at multiple places. Proof of Concept Reentrancy in RocketJoeFactory.createRJLaunchEventaddress,uint256,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256 contracts/RocketJoeFactory.sol98-155: External calls...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.24 views

transferAndCall sends tokens twice

Handle cccz Vulnerability details Impact The Flan contract is inherited from the ERC677 contract. In the transferAndCall function of the ERC677 contract, the super.transfer and transfer functions will be called, which will cause the token to be sent twice. function transferAndCall address to,...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.14 views

Users can lose value in emergency state

Handle cmichel Vulnerability details Imagine the following sequence of events: LaunchEvent.createPair is called which sets wavaxReserve = 0, adds liquidity to the pair and receives lpSupply LP tokens. LaunchEvent.allowEmergencyWithdraw is called which enters emergency / paused mode and disallows...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.12 views

Failed transfer with low level call could be overlooked

Handle harleythedog Vulnerability details Impact In LaunchEvent.sol, the function safeTransferAVAX is as follows: function safeTransferAVAXaddress to, uint256 value internal bool success, = to.callvalue: valuenew bytes0; requiresuccess, "LaunchEvent: avax transfer failed"; This function is utiliz...

6.7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.6 views

Unsafe ERC20 Operation(s)

Handle Czar102 Vulnerability details Impact ERC20 tokens may not revert on failure, instead return false. Users may lose their funds as ERC20 calls may fail. They are made to unknown ERC20 tokens that have no additional constraints on their failure reporting. Findings: LaunchEvent.sol::458 =...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

transferFrom can return false, and didnt revert

Handle Tomio Vulnerability details Impact in the the user can create launchevent, and providing token to the launchevent contract, however, some token may behave differently when handling a failed transfer and transferFrom, some token may handle failed transfer and transferFrom by returning a fal...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.9 views

possibility of minting rJOE tokens before ownership is changed to RocketJoeStaking

Handle hubble Vulnerability details Impact There is a possibility of the rJOE tokens in RocketJoeToken.sol to be minted by original owner without staking any JOE, before the ownership is transferred to RocketJoeStaking Proof of Concept Contract : RocketJoeToken.sol Line : 37 function mintaddress...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

createRJLaunchEvent() can be called by anyone with 1 Wei of _token and stop others from creating RJLaunchEvent with the same token anymore

Handle WatchPug Vulnerability details function createRJLaunchEvent address issuer, uint256 phaseOneStartTime, address token, uint256 tokenAmount, uint256 tokenIncentivesPercent, uint256 floorPrice, uint256 maxWithdrawPenalty, uint256 fixedWithdrawPenalty, uint256 maxAllocation, uint256...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.19 views

Unsafe Cast

Handle mics Vulnerability details use openzeppilin's safeCast in: ControllerV1.sol, L190: unsafe cast from uint256 to uint64 of the variable blockTime ControllerV1.sol, L192: unsafe cast from uint256 to uint64 of the variable blockTime --- The text was updated successfully, but these errors were...

7AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.6 views

Unchecked transfers may lead to funds lost.

Handle bobi Vulnerability details Impact There are some transferFrom and transfer calls without checking the resultseg. against reverting. Moreover, for certain ERC20 tokens, should insufficient tokens be present, no revert occurs whatsoever, and instead, a "false" value is returned, which should...

6.8AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.3 views

Missing payable

Handle robee Vulnerability details The following functions are not payable but uses msg.value - therefore the function must be payable. This can lead to undesired behavior. LPool.sol, addReserves should be payable since using msg.value --- The text was updated successfully, but these errors were...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.7 views

Wrong token allocation computation for token decimals != 18 if floor price not reached

Handle cmichel Vulnerability details In LaunchEvent.createPair, when the floor price is not reached floorPrice wavaxReserve 1e18 / tokenAllocated, the tokens to be sent to the pool are lowered to match the raised WAVAX at the floor price. Note that the floorPrice is supposed to have a precision o...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

_supportDexs array length not checked in constructor

Handle jayjonah8 Vulnerability details Impact In OpenLevDelegator.sol an array of supportDexs is passed to the constructor function and then passed to the delegateTo function but the supportDexs arrays length is not checked which can result in costly errors. Proof of Concept Tools Used Manual cod...

7.1AI score
Exploits0
Code423n4
Code423n4
added 2022/01/27 12:0 a.m.8 views

ERC20 return values not checked

Handle cmichel Vulnerability details The ERC20.transfer and ERC20.transferFrom functions return a boolean value indicating success. This parameter needs to be checked for success. Some tokens do not revert if the transfer failed but return false instead. Tokens that don't actually perform the...

6.9AI score
Exploits0
Code423n4
Code423n4
added 2022/01/26 12:0 a.m.9 views

Sherlock: Decouple yield strategy with withdrawals

Handle GreyArt Vulnerability details Impact If there are funds remaining in an old strategy, there is only 1 way to claim those funds which is through Sherlock.updateYieldStrategy . It is quite an inconvenience to do this. Recommended Mitigation Steps Create an additional function to allow anyone...

6.8AI score
Exploits0
Total number of security vulnerabilities10190