Lucene search
+L
Code423n4Recent

10190 matches found

Code423n4
Code423n4
β€’added 2022/11/07 12:0 a.m.β€’10 views

L2ETHBridge.l2TokenAddress returns CONVENTIONAL_ETH_ADDRESS instead of ETH_TOKEN_SYSTEM_CONTRACT_ADDRESS

Lines of code Vulnerability details Impact In the L2ETHBridge contract, both the withdraw and l2TokenAddress functions use CONVENTIONALETHADDRESS as the address of the L2ETH. However, L2ETH is actually an L2StandardToken contract at the ETHTOKENSYSTEMCONTRACTADDRESS address. If the user wants to...

6.9AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/07 12:0 a.m.β€’11 views

[Tomo-H1] All funds can drain if some conditions matched

Lines of code Vulnerability details function finalizeWithdrawal uint256 l2BlockNumber, uint256 l2MessageIndex, uint16 l2TxNumberInBlock, bytes calldata message, bytes32 calldata merkleProof external nonReentrant senderCanCallFunctionallowList...

7.3AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/06 12:0 a.m.β€’13 views

Double spending risk in L1 Bridge Contract

Lines of code Vulnerability details Impact There is double spending risk in L1 Bridge Contract. The user may call claimFailedDeposit to release their locked fund while they still have token balance in L2 network. Proof of Concept Let us focus on the L1ERC20Bridge.sol /// @dev Withdraw funds from...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’6 views

Upgraded Q -> H from 502 [1667614585174]

Judge has assessed an item in Issue 502 as High risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’9 views

Upgraded Q -> M from 62 [1667612948063]

Judge has assessed an item in Issue 62 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’7 views

Upgraded Q -> M from 203 [1667614189925]

Judge has assessed an item in Issue 203 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’7 views

Upgraded Q -> M from 250 [1667617695647]

Judge has assessed an item in Issue 250 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’11 views

Upgraded Q -> M from 91 [1667616172726]

Judge has assessed an item in Issue 91 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’9 views

Upgraded Q -> M from 407 [1667616784805]

Judge has assessed an item in Issue 407 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’12 views

Upgraded Q -> H from 502 [1667614581063]

Judge has assessed an item in Issue 502 as High risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’6 views

Upgraded Q -> M from 207 [1667615741898]

Judge has assessed an item in Issue 207 as Medium risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’10 views

Upgraded Q -> H from 149 [1667660267515]

Judge has assessed an item in Issue 149 as High risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’6 views

Upgraded Q -> H from 211 [1667662048262]

Judge has assessed an item in Issue 211 as High risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/05 12:0 a.m.β€’6 views

Upgraded Q -> H from 262 [1667614992867]

Judge has assessed an item in Issue 262 as High risk. The relevant finding follows: --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/04 12:0 a.m.β€’9 views

The governor can use the replay attack to manipuate the votes in his favor

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. Since the argument of function approveEmergencyDiamondCutAsSecurityCouncilMember does not have the proposalID, a governor can use replay attack to manipulate the votes in his favor, that is, even not...

7.2AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/03 12:0 a.m.β€’15 views

reentrancyGuardInitializer modifier used on constructor and Initialize functions

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. In L1EthBridge.sol there are two places where the reentrancyGuardInitializer modifier is used. It's found on both the constructor function and also on the initialize function. This is a problem because...

6.9AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/03 12:0 a.m.β€’9 views

initializer modifier on constructor function

Lines of code Vulnerability details Impact In L2StandardERC20.sol the initializer modifier is placed both on the constructor function and on the bridgeInitialize function. When the initializer modifier is used it cannot be called again on any function in the contract since it will revert with a...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/03 12:0 a.m.β€’13 views

Unchecked array length of the public_inputs[] in Verifier.sol

Lines of code Vulnerability details Impact If an array enumerates all registered addresses, an adversary can register many addresses, causing the problem described above. Vulnerability Details Ethereum is a very resource-constrained environment. Prices per computational step are orders of magnitu...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/03 12:0 a.m.β€’17 views

reentrancyGuardInitializer modifier used on constructor and Initialize functions

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. In L1ERC20Bridge.sol there are two places where the reentrancyGuardInitializer modifier is used. It's found on both the constructor function and also on the initialize function. This is a problem becaus...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/11/03 12:0 a.m.β€’8 views

Unchecked array lenght

Lines of code Vulnerability details Impact If an array enumerates all registered addresses, an adversary can register many addresses, causing the problem described above. Description Ethereum is a very resource-constrained environment. Prices per computational step are orders of magnitude higher...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/31 12:0 a.m.β€’7 views

May introduce an invalid Facet into the system

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. The saveFacetIfNew has not checked if the newly introduced facet is valid or not a valid contract, therefore, an invalid address might be added as a facet. according to Solidity documentation, "If the...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’14 views

Approve front-running attack in DBR.sol

Lines of code Vulnerability details Impact An attacker could front-run an approve transaction to get an overall bigger amount approved. Proof of Concept This is the approve function of the DBR token. function approveaddress spender, uint256 amount public virtual returns bool...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’15 views

Oracle's getPrice() returns the wrong price in certain combinations of oracle feed and token decimals

Lines of code Vulnerability details Impact The oracle's getPrice returns a price that is off by several orders of magnitued depending of the combination of decimals for the Chainlink's pricefeed and underlaying token's pricefeed Actually it based on the decimals set when adding the feed tot he...

6.6AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’10 views

If transferring DBR after borrowing DOLA in same transaction, DBR amount that is used already for borrowing DOLA can still be shared to allow users who do not own DBR to borrow DOLA

Lines of code Vulnerability details Impact Although my other finding named "DOLA can be borrowed without owning any DBR" indicates that users who do not own any DBR can still borrow DOLA, the design still appears to only allow the DBR owners to borrow DOLA; this is confirmed by , which states tha...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’13 views

Protocol's usability becomes very limited when access to Chainlink oracle data feed is blocked

Lines of code Vulnerability details Impact Based on the current implementation, when the protocol wants to use Chainlink oracle data feed for getting a collateral token's price, the fixed price for the token should not be set. When the fixed price is not set for the token, calling the Oracle...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’8 views

Oracle.sol uses deprecated Chainlink API latestAnswer()

Lines of code Vulnerability details Impact Oracle.sol cannot obtain prices from Chainlink feed. Proof of Concept Oracle.sol uses deprecated latestAnswer at This may not return a value as the function is deprecated. Tools Used Code inspection Recommended Mitigation Steps Use latestRoundData --- Th...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’10 views

DOLA can be borrowed without owning any DBR

Lines of code Vulnerability details Impact Although states that "one DBR token gives the right to borrow one DOLA for one year", and states that "a DOLA Fed mints DOLA to a market, which is then available to borrow for users holding DBR, using the Borrow function", users who do not own any DBR ar...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’7 views

Oracle data feed is insufficiently validated

Lines of code Vulnerability details Impact Oracle contract has 2 functions - viewPrice & getPrice - to get the price through the Chainlink price feed. However, the received data is not validated/checked for freshness and round completeness. This might cause the price to be stale and it can lead t...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’16 views

Oracle Price Calculation will Return Wrong Price for Certain Tokens

Lines of code Vulnerability details Impact viewPrice and getPrice functions of Oracle.sol has wrong price calculation implementation and so it will return wrong price for certain tokens. It only works well for tokens that has 18 decimals. This is because of hard-coded "36" in these functions line...

6.9AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’13 views

The decimal calculation is wrong for tokens with decimals < 18, it will highly inflate the price.

Lines of code Vulnerability details Impact The decimal calculation is wrong for tokens with decimals 18, it will highly inflate the price. Every function that uses oracle price such as borrow and liquidation will be wrong for tokens with decimals 18. Proof of Concept uint8 decimals = 36 -...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’10 views

Deprecated ChainLink API

Lines of code Vulnerability details Impact According to Chainlink's documentation, the latestAnswer function is deprecated. This function might suddenly stop working if Chainlink stop supporting deprecated APIs. And the old API can return stale data. Proof of Concept function latestAnswer externa...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’13 views

DBR can be reused between multiple debtor accounts

Lines of code Vulnerability details Impact A borrower can reuse DBR between various accounts. When a user attempts to call forceReplenish, the borrower will transfer the held DBR to the targeted account. In theory, a borrower can have infinite accounts in DBR debt but enough DBR on a single accou...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’9 views

It is really dangerous to borrow to your full credit limit

Lines of code Vulnerability details Impact If a borrower borrows to their max credit limit even the smallest price decrease could get them liquidated. Causing them a loss of collateral. Proof of Concept function testBorrowfullCreditAmount public gibWethuser, wethTestAmount; gibDBRuser,...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’9 views

A freshly added collateral token will cause the disadvantage of the borrowing price for the first borrowers.

Lines of code Vulnerability details Impact The Oracle contract is known to be pessimistic in way of serving the lowest prices to prevent borrowers from borrowing more than the lowest recorded value of their collateral over the past 2 days. However, this is not possible for the tokens which are...

6.5AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’13 views

Malicious owner can steal reward tokens

Lines of code Vulnerability details The recoverERC20 function allows the contract owner to transfer arbitrary ERC20 tokens owned by the WardenPledge contract in order to recover tokens sent by mistake to the contract. In order to protect against withdrawal of deposited reward tokens, it includes ...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’10 views

The pledge creators can't withdraw unused funds after the pledge is expired in the pause mode.

Lines of code Vulnerability details Impact Currently, the pledge creators can't do anything after the protocol is paused. So they can't withdraw their unused funds after the pledge is expired in the pause mode and the funds will be locked in the contract. Proof of Concept As we can see from...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’18 views

Admin can rug

Lines of code Vulnerability details Impact Admin can rug all of the contract's funds Proof of Concept The function recoverERC20 is only callable by the owner and its goal is: @notice Recovers ERC2O tokens sent by mistake to the contract. The call fails if minAmountRewardTokentoken != 0 , which is...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’11 views

Owner can withdraw all funds from a WardenPledge contract

Lines of code Vulnerability details Impact recoverERC20 is meant to allow the owner to recover funds sent by mistake to the contract, and contains a check to make sure funds can't be withdrawn for whitelisted rewards tokens. However because the owner can unwhitelist tokens and no checks exist in...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’7 views

Timelock Contract should be used to avoid malicious governance

Lines of code Vulnerability details Impact Governance of Market.sol can call following function at anytime. This is not ideal since they can call this function for their own benefits. For example they can change liquidationFactorBps to gain more liquidationFee. They can change collateralFactorBps...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’8 views

## gov role can affect the whole functioning of the Market

Lines of code Vulnerability details gov role can affect the whole functioning of the Market Impact There are many functions that can only be triggered by onlyGov role, this means losing it will be harmful for the functioning of the system. So basically in Market.sol we find functions affecting th...

6.9AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’7 views

Consideration of tokens with decimals higher than 18

Lines of code Vulnerability details Impact Oracle contract has 2 functions - viewPrice & getPrice - to get the price through the Chainlink price feed in DOLA. Both functions check the decimals of the feedDecimals answer by calling feed.decimals and calculate the price by 36 - feedDecimals -...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’17 views

SimpleERC20Escrow's initialize() can be frontrun

Lines of code Vulnerability details Impact The user's collateral is not held in the market contract but is instead held in individual escrows. Every user has a unique escrow for every market. And the escrow contracts are created via the Market contract's createEscrow function. And it's initialize...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’12 views

Excessive owner privilege - can freeze pledge creator's funds after pledging period completed.

Lines of code Vulnerability details Description The retrievePledgeRewards function is used by pledge creator, only after pledge endTimestamp has passed. It will collect for the creator all unused reward tokens. Since it can only operate after endTimestamp, the pledge has for all intents and...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’8 views

Liquidatin function does not consider cases where the liquidate user does not have enough collateral to pay.

Lines of code Vulnerability details Impact Liquidatin function does not consider cases where the liquidate user does not have enough collateral to pay. Proof of Concept The problem is the paid collateral in determined by repaiddebt: I ingnored decimals for simplifcation of the formulas I'm gonna...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’15 views

If a market with a collateral that has feedDecimals + tokenDecimals > 36 is added it won’t be functional

Lines of code Vulnerability details Proof of Concept Chainlink price feeds usually have 18 decimals, but this is not guaranteed. Also tokens usually have 18 decimals or less but this is also not the case for 100% of widely used tokens YAM-v2 has 24. So the normal use case is when both the feed an...

7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’12 views

Can steal Fed contract's DOLA balance

Lines of code Vulnerability details Description Due to lack of protection control, it is possible to steal Fed contract's DOLA balance by using a malicious attackerMarket contract by callingFedtakeProfit public function. function takeProfitIMarket market public uint profit = getProfitmarket;...

6.7AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’4 views

If tokenDecimals isn’t 18, β€œviewPrice” and β€œgetPrice” return unexpected price.

Lines of code Vulnerability details Impact If tokenDecimals is 18, viewPrice and getPrice return the price with decimal 18 and Market.sol catches the price and calculate expectedly. But if tokenDecimals isn’t 18, e.g. 6, they return the price with decimal 30 and Market.sol calculates wrong...

6.8AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’11 views

Transfer from does not make check for allowance size

Lines of code Vulnerability details Impact Transfer from does not make check for allowance size Proof of Concept Tools Used Static analytics Recommended Mitigation Steps Add check to be sure that currentAllowance = amount is true --- The text was updated successfully, but these errors were...

6.9AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’8 views

Repayment/Burn of due tokens is not enforced

Lines of code Vulnerability details Impact Repayment/burning of due DBR tokens is currently not enforced, which enables a user to simply switch addresses to extend their borrowing duration, which eventually leads to almost 0% interest paid if performed repeatedly, breaking one of the core...

6.5AI score
Exploits0
Code423n4
Code423n4
β€’added 2022/10/30 12:0 a.m.β€’12 views

Wrong logic at Fed.resign()

Lines of code Vulnerability details Impact The Fed contract has resign function which sets the chair address to address0. The NATSPEC states that this function is useful for immediately removing chair powers in case of a wallet compromise. Since the chair wallet is a multisig wallet, in the event...

6.7AI score
Exploits0
Total number of security vulnerabilities10190