First Flight #21: KittyFi

First Flight #21
Beginner FriendlyDeFiFoundry
100 EXP
View results
Submission Details
Severity: high
Valid

Incorrect Calculation of Collateral in Euros in `KittyVault::getUserVaultMeowllateralInEuros`

Summary

The getUserVaultMeowllateralInEuros function in KittyVault.sol is used to get the user's collateral for the vault in euros but the parameters provided to the last mulDiv are inverted, leading to an incorrect conversion.

Vulnerability Details

function getUserVaultMeowllateralInEuros(address _user) external view returns (uint256) {
(, int256 collateralToUsdPrice, , , ) = i_priceFeed.latestRoundData();
(, int256 euroPriceFeedAns, , ,) = i_euroPriceFeed.latestRoundData();
uint256 collateralAns = getUserMeowllateral(_user).mulDiv(uint256(collateralToUsdPrice) * EXTRA_DECIMALS, PRECISION);
> return collateralAns.mulDiv(uint256(euroPriceFeedAns) * EXTRA_DECIMALS, PRECISION);
}

Impact

Incorrect calculation of collateral in euros can lead to inaccurate valuation of a user's assets, causing financial discrepancies and issues in collateral management.

Tools Used

Manual review.

Recommendations

Modify the calculation to correctly convert the collateral value from USD to EUR by inverting the parameters. The corrected line should be:

return collateralAns.mulDiv(PRECISION, uint256(euroPriceFeedAns) * EXTRA_DECIMALS);
Updates

Lead Judging Commences

shikhar229169 Lead Judge about 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

`getUserVaultMeowllateralInEuros` performs incorrect conversion from usdc to euro

Support

FAQs

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