Critical vulnerability in KeeperProxy._validatePrice()
where incorrect price struct fields are used to validate long/short token prices, allowing price manipulation attacks and potential loss of user funds.
Attacker manipulates index token price on DEX
Submits transaction with:
Manipulated indexTokenPrice
Actual longTokenPrice
/shortTokenPrice
Price validation passes because long token is checked against index price
Malicious position can be executed at incorrect prices
Severity: HIGH
Reasons:
Direct financial loss possible
No existing mitigation
Easy to exploit
Affects core price validation
Potential losses:
Malicious liquidations
Below-market trades
Price manipulation attacks
Manual code review
Solidity static analysis
Fix price validation mapping:
Add additional validations:
Add events for monitoring:
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.