First of all, Id like to note that this issue is considered out of scope BUT the sponsors said they will accept alternative solutions to mitigate this issue as it is clearly stated in the Known issues in the ReadMe.
The _farmPlots function in the LandManager contract uses the lastUpdated timestamp from plotMetadata to calculate the schnibbles earned by a renter. However, if the plot ID is greater than the number of plots available to the landlord, the function uses the latest lastUpdated timestamp, which can lead to inaccurate calculations if the landlord has updated the plots multiple times.
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L232-L311
The impact of this issue is that the schnibblesTotal calculation may be based on an incorrect timestamp, leading to either overestimating or underestimating the schnibbles earned by the renter and the landlord. This can result in unfair distribution of rewards and potential dissatisfaction among users.
Here are 3 steps that could be taken to fix this:
Solution 1: Track Multiple Timestamps
Solution 2: Use a Mapping for Timestamps
Solution 3: Snapshot Mechanism
Any of the recommendations above should fix this issue.
