https://github.com/code-423n4/2024-05-predy/blob/a9246db5f874a91fb71c296aac6a66902289306a/src/PriceFeed.sol#L28-L33
https://github.com/code-423n4/2024-05-predy/blob/a9246db5f874a91fb71c296aac6a66902289306a/src/PriceFeed.sol#L45-L58
We can see that this is how the pricing logic works and this is used throughout the pricing logic present in the codebase for core functionalities like liquidating, etc.
The problem here, however, is that the feedIds are hardcoded and have been made immutable, but this is a wrong concept considering the underlying feed address could be changed later on for whatever reasons for example by Chainlink, which would then make this function always revert (, int256 quoteAnswer,,,) = AggregatorV3Interface(_quotePriceFeed).latestRoundData(); since the feed would be considered non-existing. The protocol also understands how this bug logic is problematic which is why in the AddPairLogic there is a logic to update feeds here.
However, since this functionality is absent in Pricefeed.sol this means that when an oracle goes down, completely all logics routing through the pricefeeds getSqrtPrice() would be permanently DOSd.
Borderline medium/low
Impact here is very high considering even liquidations of vaults in danger now would be impossible. However, considering the likelihood of this is very minimal, I assume it to be a low severity.
Consider integrating a similar functionality of updating the feeds as is present in the AddPairLogic.
