This is probably an oversight since SafeERC20 was imported and safeTransfer() was used for ERC20 token transfers. Nevertheless, note that approve() will fail for certain token implementations that do not return a boolean value (). Hence it is recommend to use safeApprove().
Handle
defsec
Vulnerability details
Impact
This is probably an oversight since SafeERC20 was imported and safeTransfer() was used for ERC20 token transfers. Nevertheless, note that approve() will fail for certain token implementations that do not return a boolean value (). Hence it is recommend to use safeApprove().
Proof of Concept
Tools Used
Manual Code Review
Recommended Mitigation Steps
Update to _token.safeApprove(spender, type(uint256).max) in approveUnderlying().