The owner parameter in CurveCrvUSDVault::withdraw is incorrectly set as msg.sender instead of address(this), preventing withdrawals.
The withdraw function in CurveCrvUSDVault requires the owner parameter to specify the owner of the shares which can be seen from below code.
However, in LendingPool::_withdrawFromVault, msg.sender is incorrectly passed as the owner of shares:
Since the LendingPool holds the shares as can be seen from the deposit function here, therefor it should pass address(this) instead.
The LendingPool will fail to withdraw assets from CurveCrvUSDVault.
Manual Review
Replace msg.sender with address(this):
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.