<!-- canonical: https://0xsimao.com/findings/venus-protocol-isolated-pools-borrow-redeem-collateral-interest -->

# It's possible to borrow, redeem, transfer tokens and exit markets with outdated collateral prices and borrow interest

Medium · Code4rena · Isolated lending markets · 8th May 2023

Finding M-02 of the Venus Protocol Isolated Pools competition.

- Protocol: https://code4rena.com/audits/2023-05-venus-protocol-isolated-pools
- Source: https://github.com/code-423n4/2023-05-venus-findings/issues/486

---

>Oracle price of every market is updated on every action involving directly that market. We didn't update the prices of every market (secondarily) used in some operations to save gas, assuming the price would be valid (there are mechanisms in the Oracles to avoid the use of old prices). We'll monitor this topic to decide if our approach is enough or if we have to update the price of every market every time we invoke `_getHypotheticalLiquiditySnapshot`.

**[0xean (judge) decreased severity to Medium](https://github.com/code-423n4/2023-05-venus-findings/issues/486#issuecomment-1576881521)**

---

Related findings:

- [`uniTransfer()` limits the gas limit to 5k in outdated 1inch solidity-utils lib](https://0xsimao.com/findings/1inch-uni-transfer-gas-1inch): 1inch Fee Extension
- [`GlobalVariables::oftOrCollateralReceiveFromOtherChains()` always charges twice the collateral on `COLLATERAL_TRANSFER`, which is not needed](https://0xsimao.com/findings/autonomint-collateral-charges-transfer-needed): Autonomint
- [`BlueBundlesV1::blueBundlesV1RepayAndWithdrawCollateral()` may transfer a null leftover](https://0xsimao.com/findings/morpho-blue-bundles-repay-collateral-transfer-leftover): Morpho Midnight Bundles
- [StakingOperator::setCollateralToken() will cause issues if it changes tokens relations that have already been set](https://0xsimao.com/findings/singularity-staking-collateral-changes-relations): Singularity
