10190 matches found
When Creating a Safe Via ODSafeManager::openSAFE, the User Proxy Is Wrongly Set As the Safe Owner
Lines of code Vulnerability details Impact We can observe from Vault721::mint function that the input usr in ODSafeManager::openSAFE function needs to be a previously built proxy of the user address. function mintaddress proxy, uint256 safeId external requiremsg.sender == addresssafeManager, 'V72...
Lack of Reentrancy guard on auctionSurplus() function
Lines of code Vulnerability details Impact auctionSurplus function have call backs that can lead to reentrancy and manipulating the transfer of tokens. Malicious actor can manipulate token transfer by changing the destination address to himself and get all the extra tokens. Proof of Concept...
Upgraded Q -> 2 from #272 [1698254247989]
Judge has assessed an item in Issue 272 as 2 risk. The relevant finding follows: ERC1155 can be inflated if the token doesn’t revert on failed transfer --- The text was updated successfully, but these errors were encountered: All reactions...
CamelotRelayer uses wrong interface for CamelotPair
Lines of code Vulnerability details Impact The CamelotRelayer uses the OracleLibrary as an interface for accessing oracle data from the CamelotPair contract which is the Camelot DEX's equivalent of a pool using the OracleLibrary from UniSwapV3Pool's periphery contracts but because the CamelotPair...
surplusTransferPercentage will always be less than 1%
Lines of code Vulnerability details Impact The protocol has a feature to auction the surplus amount and send some % out of that to extraSurplusReceiver but currently this % always less than 1% which limits the amount extraSurplusReceiver can get out of the surplus Proof of Concept we believe this...
M-06 Unmitigated
Lines of code Vulnerability details Mitigation of M-06: Issue NOT mitigated Mitigated issue M-06: Missing deadline check for AfEth actions The issue was missing deadline checks for deposits and withdrawals. Mitigation review - missing deadline for rewards Deadline parameters have been added to...
M-07 Unmitigated
Lines of code Vulnerability details Mitigation of M-07: Issue NOT fully mitigated with ERROR Mitigated issue M-07: Lack of access control and value validation in the reward flow exposes functions to public access The issue was that anyone can deposit rewards to AfEth, and that if AfEth or...
Upgraded Q -> 2 from #1784 [1698218728214]
Judge has assessed an item in Issue 1784 as 2 risk. The relevant finding follows: Low -2 UniV2LiquidityAmo.sol accounting might be temporarily out of sync In UniV2LiquidityAmo.sol, sync is an external function that can be called by anyone to update the lpTokenBalance. And lpTokenBalance is modifi...
correct use of safeAllowed modifier
Lines of code Vulnerability details Impact Detailed description of the impact of this finding. Proof of Concept Provide direct links to all referenced code in GitHub. Add screenshots, logs, or any other relevant proof that illustrates the concept. Tools Used Recommended Mitigation Steps function...
H-01 Unmitigated
Lines of code Vulnerability details Mitigation of H-01: Mitigation Error, see comments Link to Issue: code-423n4/2023-09-asymmetry-findings62 Comments The sponsor has provided a detailed response in the following comment: code-423n4/2023-09-asymmetry-findings62 comment In summary their analysis i...
[ADRIRO-NEW-M-05] Rewarder should not be allowed to apply rewards on CVX tokens
Lines of code Vulnerability details Summary The rewarder role should not be allowed to modify the balance of CVX tokens when applying rewards, otherwise the internal CVX balance tracking could get out of sync with major consequences for the protocol. Impact The introduction of internal CVX balanc...
[ADRIRO-NEW-M-01] Manager authorization in VotiumStrategy still leaves room for unprotected access
Lines of code Vulnerability details Summary Access control has been added to the VotiumStrategy contract with the intention of restricting functionality only to AfEth. However, an error in the implementation still leaves the contract publicly accessible. Impact In the updated codebase, the sponso...
afETH.withdrawTime() still returns an invalid withdrawTime.
See the markdown file with the details of this report here. --- The text was updated successfully, but these errors were encountered: All reactions...
M-05 Unmitigated
Lines of code Vulnerability details Mitigation of M-05: Issue NOT mitigated Mitigated issue M-05: Reward sandwiching in VotiumStrategy The issue was that exposure to the benefits of the VotiumStrategy might be unfairly time-weighted. There were two aspects mentioned: voting power and rewards. I d...
M-08 Unmitigated
Lines of code Vulnerability details Lines of code Vulnerability details Mitigation of M-08: Issue mitigated with ERROR Mitigated issue M-08: Inflation attack in VotiumStrategy The issue was that the price of afEth and of vAfEth could be inflated by donating underlying assets. Mitigation review Al...
failed imports
Lines of code Vulnerability details Impact Unable to comply correctly Proof of Concept Provide direct links to all referenced code in GitHub. Add screenshots, logs, or any other relevant proof that illustrates the concept. Tools Used manual and slither Recommended Mitigation Steps install...
During Safe Transfer, the Receiving User Loses Control of the Safe, Resulting in the Safe Being Lost
Lines of code Vulnerability details Impact Assuming a user wants to transfer their safe NFT to another user, post transfer Vault721::afterTokenTransfer is triggered. This function in turn calls the IODSafeManager::transferSAFEOwnership function to complete the transfer. The problem here is, that...
ODProxy contract can't grant safeRights (can't change the state of the called contracts) which will disable generating debts functionality
Lines of code Vulnerability details Impact The protocol implements a proxy mechanism to enable only the Vault721 contract from transferring SAFEs, as each SAFE is represented by a NFV non fungible vault. This contract has only one function execute that makes delegatecalls to other contracts, so...
M-01 Unmitigated
Lines of code Vulnerability details Mitigation of M-01: Issue not mitigated Link to Issue: code-423n4/2023-09-asymmetry-findings55 Comments The sponsor has acknowledged the issue but decided to not mitigate it. Acknowledged and did not fix, plan to upgrade a fix in the future Assessed type Other...
Front-running the Vault721.sol::build(address _user) can DoS the protocol for new users
Lines of code Vulnerability details Impact New users can't register and use the protocol until they discover the deployed address of their proxy, which is detrimental to the protocol's reputation Proof of Concept Attackers/bots are able to DOS the protocol for the new users who wants to create...
[ADRIRO-NEW-H-01] VotiumStrategy withdrawal can still be executed with minimal delay
Lines of code Vulnerability details Summary Within the mitigation changes, the sponsor has introduced a minimum delay of one epoch for VotiumStrategy withdrawals, in order to mitigate different issues related to the exposure to CVX . The fix contains an edge case which could still be used to make...
M-07 Unmitigated
Lines of code Vulnerability details Mitigation of M-07: Mitigation Error, see comments Link to Issue: code-423n4/2023-09-asymmetry-findings38 Comments The changes related to this issue are: Access control has been added to AfEth::depositRewards using the onlyVotiumOrRewarder modifier. This functi...
use of correct modifier
Lines of code Vulnerability details Impact Detailed description of the impact of this finding. Proof of Concept Provide direct links to all referenced code in GitHub. Add screenshots, logs, or any other relevant proof that illustrates the concept. Tools Used Recommended Mitigation Steps function...
All functions in ODSafeManager.sol related to handlerAllowed modifier can never be called.
Lines of code Vulnerability details Impact All the functions with handlerAllowed modifier are unusable and can never be called. Proof of Concept Handler is deployed and assigned to the Safe/NFT when ODSafeManager.sol/openSAFE function is called. The SafeHandler.sol have only a constructor and not...
Wrong validation check for caller of some functions
Lines of code Vulnerability details Impact When an attacker call some functions which lacks validation check for msg.sender, it causes unexpected interactions. Proof of Concept The AccountingEngine.solsettleDebt function and AccountingEngine.solsettleDebtfuntion is as follows. function...
[ADRIRO-NEW-M-02] AfEth withdrawals are delayed even if the vAfEth withdrawal amount is zero
Lines of code Vulnerability details Summary While zero amount withdrawals of SafEth have been prevented, the updated codebase still executes the withdrawal process for zero amount withdrawals of vAfEth, creating an unnecessary delay in AfEth withdrawals. Impact In AfEth, the withdrawal process is...
Price inflation by locking CVX on behalf of VotiumStrategy
Lines of code Vulnerability details Impact The price of vAfEth can be inflated with severe rounding errors as a result. Proof of Concept In VotiumStrategy the price of vAfEth is calculated by function cvxInSystem public view returns uint256 uint256 total = ILockedCvxVLCVXADDRESS.lockedBalanceOf...
[ADRIRO-NEW-M-04] CVX tracking misses to account for rewards
Lines of code Vulnerability details Summary The updated codebase now tracks CVX balances internally. While this is correctly handled in most operations, accounting fails to consider CVX tokens coming from claimed rewards. Impact CVX balances in the Votium strategy are now tracked internally. This...
Introduce minEpoch to prevent withdrawal requests being front-runned
Lines of code Vulnerability details Original Issue M-04: VotiumStrategy withdrawal queue fails to consider available unlocked tokens causing different issues in the withdraw process Issue Details The issue raised above occured whenever there was an unlocked balance which could be used to fulfill...
repayAllDebt joins system tokens to the proxy not to the Safe contract
Lines of code Vulnerability details Impact repayAllDebt now calls joinSystemCoins with dest = addressthis, which in case a proxy makes a delegated call to this function will cause the user's tokens to be transferred to its proxy, then in CoinJoin.join it will transfer internal coins from CoinJoin...
Centralisation risk
Lines of code Vulnerability details Impact The protocol has a onlyGovernor role with privileged rights to perform administrator tasks that can affect users. Proof of Concept The governorhave control over crucial function that can be updated and change according to the governor discretion. functio...
SafeID's ownership is not checked properly in BasicAction.generateDebt()
Lines of code Vulnerability details Impact the ownership of safe's id passed in BasicAction.generateDebt is never checked which can lead to unexpected results Proof of Concept BasicAction.generateDebt has the following code - function generateDebt address manager, address taxCollector, address...
H-02 Unmitigated
Lines of code Vulnerability details Mitigation of H-02: Issue mitigated with ERROR Mitigated issue H-02: Zero amount withdrawals of SafEth or Votium will brick the withdraw process The issue was that withdrawing afEth might imply a withdrawal of 0 safEth or vAfEth, which reverts. Mitigation revie...
Scaling Issue in AccountingEngine.auctionSurplus Causing Token Drains
Lines of code Vulnerability details Impact The impact of this vulnerability is significant as it leads to a scaling problem in surplus auctions conducted by the AccountingEngine. The vulnerability arises from the way the amountToSell in surplusAuctionHouse.startAuction call and rad in...
The GovernorSettings are set to incorrect values
Lines of code Vulnerability details When ODGovernor is deployed the GovernorSettings is initialized with the initialVotingDelay, initialVotingPeriod and initialProposalThreshold. The problem is that the initialVotingDelay and initialVotingPeriod are set to incorrect values which are really small...
Inherit a wrong contract - Authorizable.sol.
Lines of code Vulnerability details Risk rating high Title Inherit a wrong contract - Authorizable.sol. Vulnerability Details Impact By an untrust account, the system could be invaliable. Proof of Concept The Authorizable.soladdAuthorization and Authorizable.solremobeAuthorization functions as...
Manipulation of NFV can trick it's buyer to have it on unexpected condition.
Lines of code Vulnerability details Impact NFV can be sold at a price not expected by the user or may be susceptible to liquidation shortly after buying it. Proof of Concept openSAFE function in ODSafeManager is supposed to be called by the ODProxy and mints nft for it, furthermore it calls...
Reentrancy during collateral transfer can allow transfer with more debt than expected
Lines of code Vulnerability details Impact In a separate issue titled "SAFEs can be collateralized with worthless tokens" I outlined how the lack of input verification of the collateralJoin contract in the lockTokenCollateralAndGenerateDebt function allows a user to pass in a malicious contract...
AccountingEngine can only transfer a maximum of 1% of the surplus to the designated extraSurplusReceiver
Lines of code Vulnerability details Impact The impact of this vulnerability is related to the validation of the surplus transfer percentage in the AccountingEngine contract. The vulnerability arises from an incorrect validation check that restricts the surplus transfer percentage to WAD 1%. Proof...
Wrong accounting used in auctionDebt in AccountingEngine contract
Lines of code Vulnerability details Impact As the title suggests, the accounting in auctionDebt function is incorrect. In this particular section of the code: uint256 coinBalance = safeEngine.coinBalanceaddressthis; uint256 debtBalance = safeEngine.debtBalanceaddressthis; if...
Wrong WAD calculation in AccountingEngine contract leading to start auction with selling amount minimum 100 time bigger than expected
Lines of code Vulnerability details Impact In the Math library, 1 WAD is equal to 1e18 which is assumed 1 For example: wmul2e18, 4e18 = 8e18 In AccountingEngine contract, the devs assumed that 1 WAD is equal to 0.01 1%, 100 WAD is equal to 1 100%. Hence, the function auctionSurplus will make star...
Since the build function in 'Vault721' allows anyone to deploy a new ODProxy for any user without proper checks, it creates a potential exploit.
Lines of code Vulnerability details Impact The ability to freely deploy ODProxy contracts through the Vault721 contract's build function represents a significant security vulnerability. Exploitation of this vulnerability could lead to: Unauthorized Actions: Malicious actors could deploy proxies f...
ODSafeManager#allowSAFE() cannot be executed either by the proxy contract or any other address.
Lines of code Vulnerability details Impact "According to the GEB framework, the proxy contracts ODProxy are designed to interact with the Safe Manager ODSafeManager through the Proxy Action contract BasicActions. The pivotal function, allowSAFE, is responsible for granting an address the capabili...
Updating safeManager reference in Vault721 will brick transfer of safes
Lines of code Vulnerability details Impact Updating safeManager reference in Vault721 will brick safe transfers since the state of the new ODSafeManager instance won't have corresponding data. In addition, it is not clear how it would be possible to achieve seamless migration as particular...
User can manipulate coinBalance to have better collateralization rate
Lines of code Vulnerability details Impact Users can manipulate coinBalance mapping in the SafeEngine by calling ODSafeManager::transferInternalCoins in order to improve their collateralization rate generate more and repay less debt. Proof of Concept When a user wants to be able to generate debt...
Upgraded Q -> 2 from #425 [1698130939448]
Judge has assessed an item in Issue 425 as 2 risk. The relevant finding follows: 6. UniLiquidityAmo contracts doesn’t synchronize reserve balances of RdpxV2Core in some cases Impact Developer from Dopex said that “we keep the balances to check the health of dpxEth”. I talk about this balances: //...
Upgraded Q -> 2 from #2037 [1698131784473]
Judge has assessed an item in Issue 2037 as 2 risk. The relevant finding follows: L‑01 Early users can modify the underlying assets’ unit share price Summary: ERC4626, an extension of ERC20, is a standard that is mostly used in yield-bearing tokens. The contract of an ERC4626 token itself is an...
Upgraded Q -> 2 from #2142 [1698131545015]
Judge has assessed an item in Issue 2142 as 2 risk. The relevant finding follows: LOW1: No whenNotPaused in redeem Technical Details Almost all state changing functions have whenNotPaused in the core contract but it is not the case for redeem. The NFT it interact with has a pause/unpause...
Upgraded Q -> 3 from #839 [1698131435131]
Judge has assessed an item in Issue 839 as 3 risk. The relevant finding follows: UniV3LiquidityAMO: recoverERC721 does not, in fact, recovers them The function to recover ERC721’s found here sends them to the rDPX V2 core contract, however said contract has no function to retrieve them, rendering...
Upgraded Q -> 2 from #1553 [1698130820647]
Judge has assessed an item in Issue 1553 as 2 risk. The relevant finding follows: 3- Funds not transferred to correct recipient in RdpxDecayingBonds.emergencyWithdraw : Risk : Low The function RdpxDecayingBonds.emergencyWithdraw is used by the admin to pull funds from the contract in case of...