The marketData.longToken is incorrectly being invalidated in KeeperProxy::_validatePrice function potentially allowing invalid price values for marketData.longToken.
In KeeperProxy::_validatePrice function there are checks to validate the prices of market tokens against Chainlink data feeds. This check is done by calling the _check function and passing the market price of each token and the corresponding minimum/maximum price that the token should have. However, the price of marketData.longTokenis incorrectly validated against MarketPrices.indexTokenPrice instead of MarketPrices.longTokenPrice.
Incorrect validation of longToken prices could lead to invalid values that fall outside the range of MarketPrice.longTokenPrice.min and MarketPrice.longTokenPrice.max.
Manual review
Fix the Price Validation Logic:
Update the KeeperProxy_validatePrice function to correctly validate the long token's price using prices.longTokenPrice instead of prices.indexTokenPrice.
Likelihood: None/Very Low, everytime the keeper send a price via run/runNextAction (sent by the Gamma keeper). Impact: Medium/High, does not check the longTokenPrice, it could go out of range. Keep in mind indexToken == longToken, an error from the keeper could be considered informational.
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.