RToken's transferFrom() is not properly implemented.
The transferFrom() in RToken is implemented in a way that firstly divides amount by _liquidityIndex to get the scaled amount.
_liquidityIndex is initialized to WadRayMath.RAY when the contract is deployed.
And is expected to be updated through updateLiquidityIndex() by lending pool.
RToken::updateLiquidityIndex()
However, updateLiquidityIndex() is never called in LendingPool, this means _liquidityIndex is always WadRayMath.RAY, leading to incorrect token transferred through transferFrom().
Incorrect RToken token amount would be transferred through transferFrom().
Manual Review
Call LendingPool's getNormalizedIncome() to get reserve liquidity index.
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.