In _withdrawFromVault, withdrawn assets are sent to address(this) (LendingPool), but they should be sent to reserve.reserveRTokenAddress (RToken), as RToken holds all non-vault reserve assets (crvUSD).
LendingPool should never directly hold reserve assets, which is currently the issue:
The Curve vault's withdraw function sends the assets to the receiver (LendingPool passes address(this)):
High: Reserve assets get stuck in LendingPool and borrowers cannot receive their borrowed funds.
Use RToken as the receiver. Additionally, update the owner to address(this) (see the submission "Incorrect owner in vault withdrawal" for this vulnerability):
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.