SmartVaultV3::mint function does not protect against precision loss in the fee calculation
SmartVaultV3::mint function does not protect against precision loss in the fee calculation. The same precision error found in the burn function.
Multiple transactions over a period of time adds up and leads to losses for the system.
Manual Review
diff
- uint256 fee = _amount * ISmartVaultManagerV3(manager).mintFeeRate() / ISmartVaultManagerV3(manager).HUNDRED_PC();
diff
+ uint256 fee = (_amount * ISmartVaultManagerV3(manager).mintFeeRate()) / ISmartVaultManagerV3(manager).HUNDRED_PC();
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.