sherlock-audit / 2023-04-ajna-judging

4 stars 3 forks source link

Oxhunter526 - Title: Event Emitted Before Staking Completion #93

Closed sherlock-admin closed 1 year ago

sherlock-admin commented 1 year ago

Oxhunter526

medium

Title: Event Emitted Before Staking Completion

Summary

The contract emits a Stake event to indicate that staking has been done successfully before the actual staking of the tokens takes place in the contract. This behavior introduces a security concern that can lead to incorrect assumptions and misinterpretation of the contract's state by external entities or contracts relying on emitted events.

Vulnerability Detail

The contract emits the Stake event prior to the completion of the staking process, specifically before the transfer of LP NFT tokens to the RewardsManager contract. This can create a discrepancy between the emitted event and the actual state of the contract. External entities or contracts relying on emitted events may mistakenly interpret the emitted event as confirmation of successful staking, leading to incorrect assumptions about the contract's state.

Impact

  1. Misleading Information: External entities relying solely on emitted events may have an incorrect understanding of the contract's state, assuming successful staking when it has not yet occurred.
  2. Inaccurate Monitoring: Contracts or monitoring systems tracking events may be misled by the premature emission of the Stake event, leading to incorrect data or inaccurate monitoring of the staking process.

    Code Snippet

    Link

    Tool used

Manual Review

Recommendation

  1. Emit Events After State Changes: Emit the Stake event after the LP NFT tokens have been transferred and the staking process has been completed in the contract. This ensures that emitted events accurately represent the actual state of the contract and prevents misleading or incorrect assumptions by external entities.