Lucene search
K
Code423n4Recent

10190 matches found

Code423n4
Code423n4
•added 2022/02/23 12:0 a.m.•8 views

QA Report

1. VUSD.sol - withdrawals list can become too large so normal users will cost more gas to withdraw. Impact Function withdraw do not have check for amount 0, an user can call it infinite time and make withdrawal list too large And because the function processWithdrawals processes withdrawals in...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/23 12:0 a.m.•6 views

Update initializer modifier to prevent reentrancy during initialization

Lines of code Vulnerability details Impact While Governable.sol is out of scope, I figured this issue would still be fair game. The solution uses: "@openzeppelin/contracts": "4.2.0". This dependency has a known high severity vulnerability: Which makes this contract vulnerable: File: Governable.so...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/23 12:0 a.m.•11 views

Timelock for critical changes

Lines of code Vulnerability details Impact setDefaultFeePercentage, setCustomFeePercentageForCollateral and setCustomFeePercentageForSafe functions should have a timelock to give users time to react to the fee changes. ref: code-423n4/2021-11-overlay-findings120 Proof of Concept Tools Used Manual...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/23 12:0 a.m.•12 views

Assets sent from MarginAccount to InsuranceFund will be locked forever

Lines of code Vulnerability details Impact Assets sent from MarginAccount to InsuranceFund will be locked forever Proof of Concept The insurance fund doesn't have a way to transfer non-vusd out of the contract. Assets transferred to the InsuranceFund will be locked forever. Mitigation Have a way...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•8 views

Bypass MAX_LOCK duration + External calls even when delegation is locked

Lines of code Vulnerability details Impact Delegation owner can change the MAXLOCK duration even though current lock set on delegation has not yet expired Also Delegation owner can execute calls even when delegation is locked Proof of Concept Bypass MAXLOCK: 1. User A creates a new Delegation usi...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•17 views

ERC4626.mint() doesn't mint the correct amount

Lines of code Vulnerability details Impact The ERC4626.mint function doesn't mint the correct amount of tokens. Instead of minting amount number of tokens, it should mint shares number of tokens. Since the user doesn't receive the correct amount of tokens I'd rate this issue "HIGH". Proof of...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•11 views

permit() without updating nonce can result in replay attacks

Lines of code Vulnerability details Impact In PermitAndMulticall.sol the permit is called on the permitToken which allows you to sign the meta-transaction while someone else can submit it to the blockchain on your behalf. The problem is that a valid signature might be used several times in other...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•9 views

Use of external calls without reentrancy modifers

Lines of code Vulnerability details Impact In TWAPDelegator.sol functions like updateDelegatee and createDelegation have external calls without the use of reentrancy modifiers. These modifiers can serve as a strong security tool to prevent attacks when using external calls. Proof of Concept Tools...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•8 views

batched delegate calls used can result in double spending bug

Lines of code Vulnerability details Impact In TWABDelegator.sol anyone can call the multicall function which then calls multicall in PermitAndMulticall.sol. When using batched delegatecalls the msg.sender and msg.value are not updated on every iteration and this can result in double spending bugs...

7.1AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•15 views

Lack of approve after creating a safe in TurboRouter

Lines of code Vulnerability details Impact Both createSafeAndDeposit function and createSafeAndDepositAndBoost would revert on every call. Proof of Concept Both functions suffers from the same mistake so I'll detailed only on createSafeAndDeposit link 1. First the function calls...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•6 views

DoS in permitAndMulticall

Lines of code Vulnerability details Impact The permitAndMulticall function does not authenticate the data argument through any signatures. Only the from, amount parameters are as chosen by the from user as these are checked in the permitAndMulticall - ERC20ticket.permit call. An attacker can...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/22 12:0 a.m.•9 views

The initialize() function can be called first by an attacker

Lines of code Vulnerability details Impact In Delegation.sol the initialize function sets the owner of the contract and can only be called once. The problem is that an attacker can monitor the blockchain byte code and call the initialize function first automatically before the protocol has a chan...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/21 12:0 a.m.•6 views

CONSTANT_SETTER_ROLE is never assigned in CommunityLocker.sol

Lines of code Vulnerability details Impact In CommunityLocker.sol only the caller with the CONSTANTSETTERROLE can call the setTimeLimitPerMessage function. The problem is that the CONSTANTSETTERROLE is never assigned in the contract. Only the DEFAULTADMINROLE is assigned in the initialize functio...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/21 12:0 a.m.•8 views

InsuranceFund depositors can be priced out & deposits can be stolen

Lines of code Vulnerability details Impact The InsuranceFund.deposit function mints initial shares equal to the deposited amount. The deposit / withdraw functions also use the VUSD contract balance for the shares computation. balance = vusd.balanceOfaddressthis It's possible to increase the share...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/21 12:0 a.m.•6 views

TokenManagerERC721.sol _exit() function uses transferFrom

Lines of code Vulnerability details Impact In TokenManagerERC721 the exit function makes use of transferFrom instead of safeTransferFrom. Tokens that don’t correctly implement the latest EIP20 spec will be unusable in the protocol as they revert the transaction because of the missing return value...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/21 12:0 a.m.•9 views

Withdrawals can be spammed and other users blocked

Lines of code Vulnerability details Impact The VUSD.processWithdrawals function only performs maxWithdrawalProcesses actually maxWithdrawalProcesses + 1 iterations per call. Withdrawals can be freely spammed by a griefer calling burnamount with a zero amount. All future withdrawals are blocked...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/21 12:0 a.m.•12 views

Griefing attack at VUSD withdraw queue is possible

Lines of code Vulnerability details Impact A malicious user can make lots of withdrawal requests to fill up the queue, making VUSD withdrawals unreachable for all other users Proof of Concept There is no control of the size or number of the withdrawal requests, and VUSD will burn even 1 wei amoun...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•10 views

User can't create TurboSafe through TurboMaster.createSafe()

Lines of code Vulnerability details Impact A user can't create a safe because of the requiresAuth modifier in createSafe. Neither directly through the TurboMaster contract nor through the router. Proof of Concept Here's the test file I used to confirm it. I had to modify the contracts a little bi...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•9 views

TurboRouter: Dangerous PeripheryPayments Contract

Lines of code Vulnerability details Impact As an entry contract, the TurboRouter contract plays an important role in interacting with users. And the TurboRouter contract inherits from the PeripheryPayments contract. In the PeripheryPayments contract, anyone can use the tokens and ETH in the...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•61 views

ERC4626 does not work with fee-on-transfer tokens

Lines of code Vulnerability details Impact The docs/video say ERC4626.sol is in scope as its part of TurboSafe The ERC4626.deposit/mint functions do not work well with fee-on-transfer tokens as the amount variable is the pre-fee amount, including the fee, whereas the totalAssets do not include th...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•10 views

ERC4626 mints more shares than it should

Lines of code Vulnerability details bug in the mint function of the ERC4626 contract The mint function recieves an amount of shares and an address to and mints the amount of shares to the to address. The sender must transfer an amount of token, so that the ratio will be saved - shares / totalShar...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•7 views

TurboRouter: deposit(), mint(), createSafeAndDeposit() and createSafeAndDepositAndBoost() functions may be vulnerable to FRONT-RUN attack

Lines of code Vulnerability details Impact The TurboRouter contract inherits from the PeripheryPayments contract. To execute the deposit, mint, createSafeAndDeposit and createSafeAndDepositAndBoost functions of the TurboRouter contract, the user needs to first execute the pullToken and approve...

7.3AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•7 views

TurboRouter can't interact with existing TurboSafe because of the authentication modifier

Lines of code Vulnerability details Impact The TurboRouter is not able to interact with an existing TurboSafe because of the authentication modifier of the respective TurboSafe functions. Because of that, those router functions are unusable. Proof of Concept Here's the test file I used to confirm...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•3 views

totalFeiBoosted vars can desync in TurboSafe and TurboMaster

Lines of code Vulnerability details Impact The TurboSafe and TurboMaster contracts each keep track of totalFeiBoosted, getTotalFeiBoostedForVault, and Master keeps track of getTotalBoostedAgainstCollateral in addition. For the TurboMaster contract, these values should be the sum of the...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•7 views

ERC4626RouterBase.withdraw should use a **max** shares out check

Lines of code Vulnerability details Impact The docs/video say ERC4626RouterBase.sol is in scope as its part of TurboRouter The ERC4626RouterBase.withdraw function withdraws the asset amount parameter by burning shares. function withdraw IERC4626 vault, address to, uint256 amount, uint256...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•9 views

totalAssets() can overflow leading to the incorrect pricing of assets

Lines of code Vulnerability details The TurboSafe's totalAssets function is used by ERC4626.previewDeposit, ERC4626.previewMint, ERC4626.previewWithdraw, and ERC4626.previewRedeem. These preview functions are called directly by the non-preview versions and therefore if totalAssets has the wrong...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•8 views

ERC4626 mint uses wrong amount

Lines of code Vulnerability details Impact The docs/video say ERC4626.sol is in scope as its part of TurboSafe The ERC4626.mint function mints amount instead of shares. This will lead to issues when the asset shares are not 1-to-1 as will be the case for most vaults over time. Usually, the asset...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/20 12:0 a.m.•4 views

Slurp can be frontrun with fee increase

Lines of code Vulnerability details Impact The TurboSafe.slurp function fetches the current fee from the clerk. This fee can be changed. The slurp transaction can be frontrun with a fee increase specifically targeted for the vault or the asset by the clerk and steal the vault yield that should go...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/19 12:0 a.m.•4 views

High Risk Title

Lines of code 2022-01-dev-test-repo-findings/README.md Line 1 in 21e7cf8 | | THIS IS A TEST REPO FOR DEV PURPOSES ---|--- 2022-01-dev-test-repo-findings/README.md Line 1 in 21e7cf8 | THIS IS A TEST REPO FOR DEV PURPOSES ---|--- Vulnerability details Impact Detailed description of the impact of th...

7.1AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/18 12:0 a.m.•11 views

TurboRouter: deposit(), mint(), createSafeAndDeposit() and createSafeAndDepositAndBoost() functions do not work

Lines of code Vulnerability details Impact The TurboRouter contract inherits from the ERC4626RouterBase contract. When the user calls the deposit, mint, createSafeAndDeposit and createSafeAndDepositAndBoost functions of the TurboRouter contract, the deposit and mint functions of the...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/18 12:0 a.m.•6 views

TurboRouter: deposit(), mint(), createSafeAndDeposit() and createSafeAndDepositAndBoost() functions do not work

Lines of code Vulnerability details Impact The TurboRouter contract inherits from the ERC4626RouterBase contract. When the user calls the deposit, mint, createSafeAndDeposit and createSafeAndDepositAndBoost functions of the TurboRouter contract, the deposit and mint functions of the...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/18 12:0 a.m.•10 views

Mint does not produce the intended amount of shares

Lines of code Vulnerability details Resubmitting this issue with a better explanation, apologize for the double submit. Impact In the mint function, it should produce shares token, but there is an inattention mistake and it produces amount tokens. Proof of Concept Assume the contract manages 1000...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/18 12:0 a.m.•11 views

ERC4626 mints token amount, not number of shares

Lines of code Vulnerability details Impact If the number of assets is different from the number of shares, the user will get more or less shares than they expect. Users don't have to be sophisticated at all, just using the contract as intended can cause users to get more or less of the shares of ...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/18 12:0 a.m.•5 views

Seems to be an inattention error

Lines of code Vulnerability details Shouldn't it be mintto, shares; ? Currently the using mint , one would receive as many shares as assets they transfer, which is not the intended behaviour --- The text was updated successfully, but these errors were encountered: All reactions...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•10 views

Reentrancy in depositBribeERC20

Lines of code Vulnerability details Description The contract was found vulnerable to Reentrancy attack. It was noticed that the function depositBribeERC20 makes an external call to another untrusted address or a contract before it resolves any effects at line "" If the attacker controls the...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•6 views

[WP-M8] ThecosomataETH should have a min_mint_amount parameter for add_liquidity() set off-chain instead of calculating the min_mint_amount on-chain

Lines of code Vulnerability details // Calculate the min. LP token amount after slippage and attempt to add liquidity function addLiquidityuint256 ethAmount, uint256 btrflyAmount internal uint2562 memory amounts = ethAmount, btrflyAmount; uint256 expectedAmount =...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•13 views

Reentrancy in depositBribeERC20 function

Lines of code Vulnerability details Impact depositBribeERC20 function in BriveVault is reentrant in line 187, where an address supplied by the caller is called. A bad actor that has DEPOSITORROLE and is a contract can execute a folowing attack: 1. Create a dummy token contract, reentrant in the...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•11 views

RewardDistributor._claim uses native token payable.transfer, which is usafe for smart contracts

Lines of code Vulnerability details Impact When reward.token is set to vault address and native token is used, it is sent out via payable.transfer call. This is unsafe as transfer has hard coded gas budget and can fail when the account is a smart contract. Such transactions will fail for smart...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•10 views

non erc20 token might revert when calling emergencyWithdrawERC20()

Lines of code Vulnerability details Impact when there is an emergency situation, the admin can call emergencyWithdrawERC20 to save the funds, however due to mismatch between non erc20 token like USDT and openzeppelin IERC20 where the open zeppelin IERC20 is expecting a return on the transfer...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•14 views

Manipulations of setFee

Lines of code Vulnerability details Impact If we consider that the fee variable is meaningfully applied, there will still be several problems with this: 1. Admin can setFee up to 100%. This is bad for users, fees should have a reasonable upper limit, e.g. 30% to prevent potential griefing. 2...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•5 views

RewardDistributor._claim() Will Always Revert if The Recipient is a Contract

Lines of code Vulnerability details Impact The claim function is called to claim a reward for a given rewardIdentifier. The leaf node is calculated using the hashed index, account and amount values and is verified to belong to the merkle tree. After setting the reward as claimed, the tokens are...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•8 views

Turbo Safe's can be created with malicious tokens

Lines of code Vulnerability details Impact In TurboMaster.sol the createSafe function is called when the user calls a function with the same name in the TurboRouter.sol file. It then creates a new Turbo Safe with an arbitrary token supplied by the user. Since there is no whitelist of acceptable...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•6 views

[WP-H0] DEFAULT_ADMIN_ROLE of BribeVault can steal tokens from users' wallets

Lines of code Vulnerability details The current design/implementation allows the DEFAULTADMINROLE of BribeVault to steal funds from any address that approved this contract up to allowance: As a DEFAULTADMINROLE, the attack is simply do the following steps: 1. grantDepositorRole to self; 2...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•12 views

canSafeBoostVault() doesn't actually check the feiAmount passed in

Lines of code Vulnerability details Impact In TurboMaster.sol the onSafeBoost function calls canSafeBoostVault on the booster contract to check if the safe is allowed to boost the vault using the feiAmount which is passed in by the caller as an argument. The problem is that the feiAmount is never...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•11 views

Slurp misses boost cap checks

Lines of code Vulnerability details Impact Missing checks of canSafeBoostVault in onSafeSlurp function in TurboMaster.solL279. The current vault deposit could already be at BoostCap. Calling slurp on this vault would add interest on the getTotalFeiBoostedForVaultV which will now becomes BoostCap...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•7 views

Tokens are directly transferred from briber to BribeVault

Lines of code Vulnerability details Impact Function depositBribeERC20 in BribeVault transfers tokens directly from the briber: // Since this method is called by a depositor contract, we must transfer from the account // that called the depositor contract - amount must be approved beforehand...

6.7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•9 views

onSafeSlurp() can be called by anyone on TurboMaster.sol

Lines of code Vulnerability details Impact In TurboMaster.sol the onSafeSlurp function can be called directly by anyone while the logic implies that it should only be called by the slurp function on the TurboSafe.sol contract which performs the required calculations beforehand. When onSafeSlurp i...

7AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•3 views

Reentrancy in depositBribe in TokemakBribe.sol

Lines of code Vulnerability details Description The contract was found vulnerable to Reentrancy attack. It was noticed that the function depositBribe makes an external call to another untrusted address or a contract before it resolves any effects at line "" If the attacker controls the untrusted...

6.9AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•7 views

Missing briber check is equal to address(this), can cause imbalance between the bribe amount, and the actual balance that the contract has

Lines of code Vulnerability details Impact the depositBribeERC20 is called from https://github.com/code-423n4/2022-02-redacted-cartel/blob/main/contracts/TokemakBribe.sol, however if there is a malicious user that had depositor role, this user can call depositBribeERC20 and set the briber to the...

6.8AI score
Exploits0
Code423n4
Code423n4
•added 2022/02/17 12:0 a.m.•8 views

Unchecked feiAmount range

Lines of code Vulnerability details Impact BoosValue could be not safe. Proof of Concept The variable feiAmount is not used during the logic of the method canSafeBoostVault. According to the comment: The amount of Fei asset to check the Safe is authorized boost the Vault with. So this argument mu...

6.8AI score
Exploits0
Total number of security vulnerabilities10190