Lucene search
+L
Code423n4Recent

10190 matches found

Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•22 views

UniswapV3 trading fees are always locked in treasury instead of going back to the protocol users through GeVault

Lines of code Vulnerability details TokenisableRange was redesigned to redirect collected fees to a pre-defined GeVault, where the protocol stakers can benefit from the added value. However, the use of an incorrect variable makes this distribution of the fees impossible to happen, and the fees wi...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•22 views

Funds will be lost in case the block reorg occurs on the chain of sending bridge

Lines of code Vulnerability details Impact Funds will be lost in case the block reorg occurs on the chain of sending bridge Proof of Concept consider the following scenerio on sending chain: In block 1: Alice sends the 1000 tokens to the destination bridge and the nonce for it is set to 10 In blo...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•24 views

In the event of a fall in the price of USDY, the withdrawal of funds for the user may be blocked

Lines of code Vulnerability details Impact There is a wrap function called by users to wrap their USDY tokens . In the future, to withdraw tokens, the user calls the unwrap function . However, in the unwrap function, the user can have more funds in case the price of USDY falls. Based on the case...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•24 views

Wrong calculation of elapsed days

Lines of code Vulnerability details Impact For a certain period of time, the dailyIr is compounded every day. However, when calculating prevClosePrice, the last day's addition is missed. The formula for calculating the current price is as follows: Range.dailyInterestRate Days Elapsed + 1...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•20 views

Transaction origin check in ROE Markets make Options positions opened by contract users impossible to reduce or close

Lines of code Vulnerability details This issue was present in the original contest but I did not notice it as I did not have time to review OptionsPositionManager. The Roe Markets LendingPool.sol that OptionsPositionManager uses is a modified version of Aave V2 with an added PMTransfer...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•19 views

abi.encode() function does not support dynamic arrays in Solidity version 0.8.16 or earlier.

Lines of code Vulnerability details Description The bug is in the burnAndCallAxelar function. The function uses the abi.encode function to encode the payload to send to the AxelarGateway contract. However, the abi.encode function was changed in Solidity version 0.8.17 to remove the support for...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•16 views

Users can lost their USDY tokens in the Source Chain if something fails during the crosschain communication because there is not a validation mechanism to confirm that tokens were minted in the Destination Chain

Lines of code Vulnerability details Impact Users can lost their USDY tokens that were burnt in the Source Chain when bridging to another chain. Proof of Concept The bridging implementation solely relies and assumes that all messages sent to the Axelar Network will be validated and won't have any...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•26 views

guardian multisig should be timelock

Lines of code Vulnerability details Impact Per the rUSDYFactory.sol, The Natspec states the guardian address is a multsig address which will be passed in constructor during deployement of factory contract. @notice guardian address in constructor is a msig. and constructoraddress guardian guardian...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•54 views

Incorrect calculation of totalSupply(), balanceOf() in rUSDY.sol if the rate is unlinked from $1

Lines of code Vulnerability details Impact In rUSDY.sol, the functions totalSupply, balanceOf are calculated. totalSupply : function totalSupply public view returns uint256 return totalShares oracle.getPrice / 1e18 BPSDENOMINATOR; balanceOf : function balanceOfaddress account public view returns...

6.5AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•23 views

No removal mechanism from blocklist, allowlist and sanctionsList

Lines of code Vulnerability details Impact rUSDY.sol has setBlocklist sets the blocklist address, setAllowlist sets the allowlist address, and setSanctionsList sets the sanctions list address functions: However, the mechanism for removing addresses from arrays is not implemented anywhere. Even in...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/07 12:00 a.m.•23 views

Potential Out-of-Bounds Error When Modifying Ranges

Lines of code Vulnerability details The method allows for the modification of a range based on an index. However, there's no explicit check to ensure that the provided indexToModify is within the bounds of the ranges array. If an out-of-bounds index is provided, the method will throw a generic...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

A difference in the rDPX price between the oracle and DEXs used for trading can cause more slippage than expected

Lines of code Vulnerability details Impact The protocol will experience much higher slippage than supposed to due to using the wrong price in calculating the amount after slippage. Proof of Concept The protocol executes swaps on Uniswap and Curve. The issue arises due to the protocol using its ow...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•20 views

Fully slashed transcoder can vote with 0 weight messing up the voting calculations

Lines of code Vulnerability details Impact If a transcoder gets slashed fully he can still vote with 0 amount of weight making any other delegated user that wants to change his vote to subtract their weight amount from other delegators/transcoders. Proof of Concept In BondingManager.sol any...

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

Lack of Checks for 'msg.sender': The function checks whether msg.sender is _owner or l2Migrator() but doesn't specify who should normally be calling this function.

Lines of code Vulnerability details Impact In the bondForWithHint function, there is a segment of code that checks if msg.sender is owner or l2Migrator, but the function does not explicitly state which role or account should be the normal caller. This could be a potential security issue, as faili...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•18 views

lastFeeRound is only updated after adding fees and updating the cumulative fee factor. So when first calling updateTranscoderWithFees() in a new round, lastFeeRound will still be set to the previous round.

Lines of code Vulnerability details Impact This could lead to incorrect fee calculations for delegators when claiming fees or pending fees. First time earnings are calculated in the new round, they will use the old cumulative fee factor rather than starting from 0 as intended. This effectively pa...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•18 views

underflow can happens after delegator vote and block vote counting

Lines of code Vulnerability details Impact underflow can happens after delegator vote and block vote counting Proof of Concept In the current implementation, when a voting, the function countVote is triggered, this function is overriden in the function GovernorCountingOverridable.sol weight =...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•36 views

Flashloan/Sandwich Attacks on UpdateFunding()

Lines of code Vulnerability details Impact The attacker can launch a sandwich/flashloan attack on the updateFunding function to gain most of the reward. Proof of Concept 1. The attacker observed that some reward is going to be distributed via updateFunding function. 2. The attacker borrowed...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

[M-01] Transcoder can front-run slasher to avoid getting slashed and continue voting

Lines of code Vulnerability details Impact In BondingManager.slashTranscoder, verifier can slash transcoderdelegator bonded amounts. However, this can be easily front runned via BondingManager.unbondWithHint by reducing bonded amount to avoid slashing via underflow and keep bonded position...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•24 views

If funding duration is update after few epoch, it will completely brick the perPetualAtlanticVault.sol

Lines of code Vulnerability details Impact perpetualAtlanticVault.sol functionality is dependent upon the funding duration which can be changed by the admin and can lead to bricking the whole calculations in the perpetualAtlanticVault.sol Proof of Concept Initially funding duration is set to seve...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•23 views

Zero Redemption Amount in RdpxDecayingBonds Contract

Lines of code Vulnerability details Impact The redeem function, as described, checks whether the assets to be redeemed assets are not zero. This check is in place to ensure that a user isn't redeeming a non-zero amount of rdpxAmount tokens in exchange for zero assets. Such a check is essential to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

Incorrect price precision in RdpxV2Core

Lines of code Vulnerability details Impact The core contract expects the price oracle to return 1e8 precision, but its actually 1e18. This will cause heavily incorrect results from all usages of the price. Proof of Concept The RdpxV2Core.getRdpxPrice function is meant to return 1e8 precision:...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•30 views

Deployment issues with chains not compatible with Shanghai hardfork

Lines of code Vulnerability details Impact Besides issues with deployment &maintenance contracts; A Big Issues is quoted below from an audit finding... "This could also become a problem if different versions of Solidity are used to compile contracts for different chains. The differences in byteco...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•16 views

[M-02] BondingVotes.getPastVotes(): User can easily manipulate voting power for round

Lines of code Vulnerability details Impact User can take a collaterized loan of LPT and bond for a single round to gain voting power for a single round and vote on proposals. This is because when voting, only the single round is checked when retrieving the voting power via...

7.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•33 views

Improperly tracking asset reserve for WETH

Lines of code Vulnerability details Impact Function RdpxV2Corewithdraw lets delegate owners withdraw their unused WETH. However, withdrawn amount is not deducted from totalWethDelegated, which causes WETH asset reserve tracked improperly. The impacts could be: 1. Function sync gets reverted when...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•23 views

Attacker can DOS the ability of the protocol to exercise their options

Lines of code Vulnerability details Impact When an option is ITM, the admin can call the settle function of the RdpxV2Core contract, which will call the settle function of the PerpetualAtlanticVault contract. This function checks that the WETH balance of the PerpetualAtlanticVaultLP contract is...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•24 views

Zero Amount Check Missing in reLP function

Lines of code Vulnerability details Impact If amount is 0, the reLP function will still execute all its operations, including external contract calls, which consume gas. This could lead to unnecessary gas costs for the caller. In a worst-case scenario, if this function is called repeatedly with...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•16 views

Transfering Bonds would create confusion among delegators because of non-deletion of unbondingLocks & assigning all the new delegators the same unbounding id

Lines of code Vulnerability details transferBond function is used to transfers ownership of a bond to a new delegator using optional hints if needed. Here the old unbound lock is deleted after creating a new one in unbondWithHint function. But the problem lies in the delete operation as it does n...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•14 views

Lack of Input Validation and Error Handling

Lines of code Vulnerability details Impact In the slashTranscoder function, the parameters slashAmount and finderFee are directly used for computation without any validity checks. This design overlooks several key issues: There's no check to see if slashAmount or finderFee are within logical...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•21 views

Malicious user can prevent the creation of a proposal

Lines of code Vulnerability details Vulnerability Detail The LivepeerGovernor inherits OpenZeppelin's GovernorUpgradeable contract. The GovernorUpgradeable utilizes the hashProposal function to generate a unique hash when creating a new proposal. The hash depends solely on input parameters:...

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

Malicious actor can remove anyone's vote

Lines of code Vulnerability details Impact The GovernorCountingOverridable contract of the protocol is used to record the governance votes for different proposals and it allows the users to delegate their voting power to anyone. The handleVoteOverrides in the GovernorCountingOverridable contract...

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

on hitting ceiling, the Bonds Manager re configures to stop collecting treasure cut, but does not have inverse logic

Lines of code Vulnerability details Impact The bonds manager configures itself to stop collecting treasury reward cut, if the balance in treasury is above the configured ceiling. But, the resetting of is managed by the admin account manually. The execution of proposals is based on funds in...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•23 views

BondManager.updateTranscoderWithFees wrong decimal multiplication. Function always revert due to underflow

Lines of code Vulnerability details BondingManager.sol have 2 mathUtils libraries, MathUtils use 1e6 as precision while PreciseMathUtils use 1e27 as precision. Some variable use MathUtils while other use PreciseMathUtils which might cause confusion. It happen with treasuryRewardCutRate variable...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•14 views

Approve race condition when calling approveContractToSpend()

Lines of code Vulnerability details Impact Malicious allowance spenders will be able to spend more than the protocol intended. Proof of Concept When modifying the approved allowance of a spender address there is an issue with the spender address front-running the modification transaction and...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•27 views

PerpetualAtlanticVaultLP incentives can be stolen via flash loan

Lines of code Vulnerability details Impact The liquidity pooled from the PerpetualAtlanticVaultLP is used by the core contract. This liquidity is provided by anyone, and after each epoch 1 week an incentive is paid after to further incentivise liquidity provision. However, the funds can be stolen...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•20 views

Underflow in updateTranscoderWithFees can cause corrupted data and loss of winning tickets.

Lines of code Vulnerability details Summary updateTranscoderWtihFees can underflow because MathUtils is used instead of PreciseMathUtils. Proof of Concept According to LIP-92 the initial treasuryRewardCutRate will be set to 10%. treasuryRewardCutRate is set with the...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•25 views

Lose due to rounding. Use more precise library for mathematical operations

Lines of code Vulnerability details Impact The mulDivDown function, assumed to be from FixedPointMathLib, is likely designed to multiply two numbers and then divide the result, rounding down any remainders. This rounding down can result in minor discrepancies when converting between assets and...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•18 views

Users can withdraw token multiple times by calling `withdrawStake' thereby depleting the treasury

Lines of code Vulnerability details The withdrawStake function is used to withdraw tokens for an unbounding lock that has existed through an unbounding period. All it needs is the unbondingLockId to carry out the operation. The associated ID gets deleted & the amount that has been bounded is...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•21 views

Bond Redemption is lower than intended

Lines of code Vulnerability details Impact Bonds redemption does not correspond to protocol intention leading to lesser ETH redeemed Proof of Concept Once the bond reaches maturity and the user initiates the redemption process by calling "redeem," it's possible for the user to receive a gain that...

7.2AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

getLpPriceInEth and getRdpxPriceInEth return prices in 1e18 decimals, but we use it as 1e8 decimals

Lines of code Vulnerability details Impact Wrong decimals/price if we use RdpxEthOracle.sol as the oracle. Proof of Concept rdpx/eth oracle is not in the scope of this audit, so we can assure they are correct and only check if we use the API right. According to...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•14 views

The order of decreasing total stake for the old delegate and increasing for the new delegate could lead to issues if one reverts but not the other.

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. Proof of Concept The potential issue is: decreaseTotalStake succeeds in decreasing the old delegate's stake increaseTotalStake reverts and does not increase the new delegate's stake This would incorrect...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•23 views

Overwriting rdpxAmount Without Checks

Lines of code Vulnerability details Impact The decreaseAmount function, specifically the line bondsbondId.rdpxAmount = amount;. This vulnerability allows overwriting the rdpxAmount without any checks or backups, which can result in irreversible data loss. function decreaseAmount uint256 bondId,...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•26 views

Incorrect usage of an uninitialized earnings pool if lastRewardRound >= currentRound.

Lines of code Vulnerability details Impact If lastRewardRound = currentRound, the earningsPool for currentRound may not be initialized if reward has not yet been called for currentRound. So using it to update cumulative rewards or fees could be incorrect. This can lead to incorrect reward...

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

EIP-2938 Breaks Whitelist Logic

Lines of code Vulnerability details Impact Unauthorized contracts can bypass whitelistedContractsmsg.sender due to EIP-2938. Proof of Concept In the function isEligibleSender it checks if msg.sender != tx.origin... but when EIP-2938 a.k.a Account Abstraction is fully implemented it will be possib...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

Options could not be settled, causing liquidity get locked in vault

Lines of code Vulnerability details Impact In settle logics, RdpxV2Core contract calls to PerpetualAtlanticVault.settle to update funding, burn option tokens and do some token settles. However, the logic could be reverted in the call...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•31 views

Calling withdraw on a delegated amount of WETH doesn't subtract from totalWethDelegated

Lines of code Vulnerability details Impact The contract's WETH amount gets permanently bricked. Proof of Concept A user can call addToDelegate and give WETH, that other people can use for bonding with their rDPX in exchange for a certain percentage appointed by the delegatee. Delegate memory...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•33 views

Attacker can DOS the sync function of RdpxV2Core which will brick critical functionality

Lines of code Vulnerability details Impact The sync function of the RdpxV2Core contract is critical for ensuring that the cached balances of the tokens in the contract are up to date. For example, all of the AMO logic involves sending tokens directly to the RdpxV2Core contract, meaning there's no...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•23 views

Slashing transcoders on violation should not effect the delegators who staked into such transcoders, delegators should continue to earn rewards

Lines of code Vulnerability details Impact Due to violation of norms, when a transcoder is slashed and force to resign, the delegators who provided stake into such transcoder should not be effected. They delegators should be able to continue earning the rewards as they delegated their tokens to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•8 views

_weight - voter.deductions can revert in underflow when counting the vote

Lines of code Vulnerability details Impact weight - voter.deductions can revert in underflow when counting the vote Proof of Concept In the current implementation, when a voting, the function countVote is triggered, this function is overriden in the function GovernorCountingOverridable.sol weight...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•22 views

DoS sending WETH from RdpxV2Core to PerpetualAtlanticVault via provideFunding()

Lines of code Vulnerability details Impact The amount of reserveAssetreservesIndex"WETH".tokenBalance can be set to 0, by first calling addToDelegate with the current value of reserveAssetreservesIndex"WETH".tokenBalance, then calling withdraw to withdraw all the deposited weth and then calling...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/09/06 12:00 a.m.•25 views

Regular bonding incorrectly purchases a reduced amount of Put options due to discount

Lines of code Vulnerability details During rDPX bonding, rdpxV2Core will purchase put options for the rDPX that are used for minting DPXETH. This is for hedging against rDPX price drop to protect the DPXETH peg. The amount of put options to purchase is equivalent to the amount of rDPX that are us...

7.1AI score
SaveExploits0
Total number of security vulnerabilities10190