The distributeAssets function does not check for the minimum/maximum prices when calling Chainlink's price feed.
Chainlink price feeds have in-built minimum & maximum prices they will return; if during a flash crash, bridge compromise, or depegging event, an asset’s value falls below the price feed’s minimum price, the oracle price feed will continue to report the (now incorrect) minimum price.
The distributeAssets function will operate on invalid data if called when the price of the tokens is outside the bounds of the provided maximum/minimum values of the price feed.
Manual Review
To help mitigate such an attack on-chain, smart contracts could check that minAnswer < receivedAnswer < maxAnswer.
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.