sherlock-audit / 2023-01-derby-judging

4 stars 1 forks source link

josephdara - Reentrancy #417

Closed sherlock-admin closed 1 year ago

sherlock-admin commented 1 year ago

josephdara

high

Reentrancy

Summary

Vulnerability Detail

High Josephdara Rentrancy attack possible in function pushAllocationsToVaults in game.sol

    address vault = getVaultAddress(_vaultNumber, _chain);
    require(vault != address(0), "Game: not a valid vaultnumber");
    require(isXChainRebalancing[_vaultNumber][_chain], "Vault is not rebalancing");

    int256[] memory deltas = protocolAllocationsToArray(_vaultNumber, _chain);

    IXProvider(xProvider).pushProtocolAllocationsToVault{value: msg.value}(_chain, vault, deltas);

    emit PushProtocolAllocations(_chain, getVaultAddress(_vaultNumber, _chain), deltas);

    isXChainRebalancing[_vaultNumber][_chain] = false;
  }

isXChainRebalancing[_vaultNumber][_chain] = false should be updated first to prevent malicious actors from using this

Impact

Code Snippet

Tool used

Manual Review

Recommendation