The QuantAMMWeightedPool::oracleStalenessThreshold cannot be updated due to lack of a setter function inside QuantAMMWeightedPool.sol, which will lead to an incorrect oracleStalenessThreshold in case of heartbeat/deviation change by chainlink or due to any requirement of the protocol.
The QuantAMMWeightedPool::oracleStalenessThreshold is set inside the QuantAMMWeightedPool::initialize when the pool is deployed.
There's no other way to set this threshold again due to lack of a setter function. The rationale behind determining a oracleStalenessThreshold includes but not limited to heartbeat and deviation.
It's public info as well as chainlink team confrimed this in the public discord that a price feed's heartbeat and deviation can be changed as per demand and volatility, which has been done in past to several pairs, below text is by the official from the public discord channel of chainlink (reference to the public chat can be provided when asked, not providing here to avoid revealing anonimity)
Along with this, We can also consider the fact that the rationale of using certain threshold at the time of deployment is no longer valid after certain time has been passed.
The current contract clearly lacks a setter function required to mitigate this, this would allow stale values and incorrect circuit breaking.
Incorrect staleness threshold would be used as it would not align with the heartbeat or deviation or any criteria which the protocol even intended to impose as it's immuatable now, leading to improper weights calculation which is done at intervals, eventually allowing loss of funds.
Incorrect circuit breaking would take place here, which breaks the purpose of having a oracleStalenessThreshold.
Manual Review
It is recommended to add a setter function for oracleStalenessThreshold inside the QuantAMMWeightedPool.sol
Likelihood: Informational/Very Low. You are contacted in advance, you can pay to have a custom threshold, and usually, it's only increasing the heartbeat. Impact: Low/Medium. Temporary DoS for performUpdate and hook functions.
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.