DeFiFoundry
60,000 USDC
View results
Submission Details
Severity: medium
Invalid

Lack of Collateral Existence Check in `depositMargin` Function in `TradingAccountBranch`

Summary:

The depositMargin function lacks checks to validate whether the collateralType already exists and is correctly configured before proceeding with the deposit. This omission means that the function does not ensure that the specified collateralType is recognized or properly set up

Vulnerability Details:'

Processing Unrecognized Collateral Types:

If collateralType is not recognized or properly configured, the deposit operation may proceed with invalid or unconfigured collateral types. This can lead to incorrect handling of collateral and unexpected behavior.
Overwriting Existing Collateral Amounts:

The function does not account for scenarios where the collateralType might already exist in the trading account. Existing collateral amounts could be incorrectly overwritten if the tradingAccount.deposit method does not handle such cases properly.

Impact:

The lack of collateral existence checks can lead to significant issues such as incorrect handling of deposits, potential loss of collateral, and unexpected behavior within the trading account. This can impact the stability of the exchange and the integrity of the trading accounts.

Proof of Concept / Explaination:

Key Observations
Lack of Check for Collateral Existence:

Observation: The function does not check if the collateralType is already associated with the trading account or if it is a recognized collateral type. The tradingAccount.deposit(collateralType, amountX18) function is called directly without validating if the collateral type has been previously configured or if it exists.
Risk: This means that if the collateralType is not correctly configured or is unknown, the deposit will still proceed, potentially causing issues with the trading account or other collateral-related logic.
Potential Overwrite of Existing Collateral Amount:

Observation: The function does not handle the case where the collateralType already has an existing amount. If the tradingAccount.deposit function allows overwriting of existing collateral values, it might lead to issues if the collateral configuration or state is not handled properly.
Risk: Collateral values could be incorrectly overwritten, leading to inconsistent states or unexpected behavior in the trading account.

Tools Used:

Manual

Recommendations:

Check for Collateral Type Existence:

Action: Add a check to ensure that the collateralType is valid and configured before processing the deposit. This ensures that only recognized and correctly set up collateral types are handled.
solidity
Copy code
_requireCollateralTypeExists(collateralType);
Validate Collateral Configuration:

Action: Implement checks to verify that the collateralType has been correctly configured. This can involve verifying configuration parameters and ensuring that the collateral type adheres to expected standards.
Handle Existing Collateral Appropriately:

Action: Ensure that the tradingAccount.deposit function properly manages existing collateral amounts. This may involve updating amounts correctly or enforcing rules to prevent unwanted overwrites.

Updates

Lead Judging Commences

inallhonesty Lead Judge
11 months ago
inallhonesty Lead Judge 11 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.