#41526 [SC-Medium] MoneyBrinter::compound can be vulnerable to sandwich attacks
Description
Brief/Intro
Vulnerability Details
function compound(
address[] calldata swapInputTokens,
IZapper.SingleTokenSwap[] calldata swapToToken0,
IZapper.SingleTokenSwap[] calldata swapToToken1,
IZapper.KodiakVaultStakingParams calldata stakingParams,
IZapper.VaultDepositParams calldata vaultStakingParams
) public override onlyStrategyManager nonReentrant returns (uint256) {
.....
(uint256 islandTokensMinted, uint256 vaultSharesMinted) =
zapper.zapInWithMultipleTokens(swapParams, stakingParams, vaultStakingParams);
require(vaultSharesMinted == 0, "MoneyBrinter: vault shares minted while compounding");
require(islandTokensMinted >= stakingParams.amountSharesMin, "MoneyBrinter: not enough island tokens minted");
// deposit into farm
emit VaultCompounded(_msgSender(), islandTokensMinted);
_depositIntoFarm(islandTokensMinted);Impact Details
References
Proof of Concept
Proof of Concept
Previous#41524 [SC-Critical] Incorrect Reward Calculation in accumulatedDeptRewardsYeet() Function Leads to Loss of User Funds During Vesting PeriodNext#41528 [SC-High] When claiming rewards in native Bera via `StakeV2.claimRewardsInNative`, excess `token0Debt` or/and `token1Debt` is not returned to the kodiak vault but stuck in `StakeV2` contract.
Was this helpful?