Steadefi

Steadefi
DeFiHardhatFoundryOracle
35,000 USDC
View results
Submission Details
Severity: low
Invalid

`GMXVault` contract: no check if the underlyingAsset of the lendingVault is the used token by the vault

Summary

GMXVault contract: no check if the underlyingAsset of the lendingVault is the used token by the vault.

Vulnerability Details

When GMXVault is deployed;
for each one of the vault tokens: no check is made to ensure that the lendingVault underlyingAsset matches the token that's going to be used by the vault.

Impact

A redeployment of the vault will be needed if any of the lendingVaults is wrongly assigned, as the vault functions that interacts with the lendingVault will not work.

Proof of Concept

GMXVault.constructor/L90-L91

_store.tokenALendingVault = ILendingVault(store_.tokenALendingVault);
_store.tokenBLendingVault = ILendingVault(store_.tokenBLendingVault);

Tools Used

Manual Review.

Recommendations

Add the following checks in the constructor before assigning the lendingVaults:

- _store.tokenALendingVault = ILendingVault(store_.tokenALendingVault);
- _store.tokenBLendingVault = ILendingVault(store_.tokenBLendingVault);
+ if(ILendingVault(store_.tokenALendingVault).asset() == _store.tokenA && ILendingVault(store_.tokenBLendingVault).asset()==_store.tokenB){
+ _store.tokenALendingVault = ILendingVault(store_.tokenALendingVault);
+ _store.tokenBLendingVault = ILendingVault(store_.tokenBLendingVault);
+ }else{
+ revert();
+ }
Updates

Lead Judging Commences

hans Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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