ID | Description | Severity |
---|---|---|
L-01 | Owner can renounce ownership. | Low |
L-02 | No boundaries when setting values. | Low |
L-03 | Empty receive(). | Low |
SmartVaultManagerV5
is inherited from OwnableUpgrradeable
, so it's possible for contract to use renounceOwnership
function and left the contract ownership.
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/SmartVaultManagerV5.sol#L16
Same issue can be found in LiquidationPoolManager.sol
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/LiquidationPoolManager.sol#L11
Consider to override this function and revert.
There are some functions where owner can set any value.
In SmartVaultManagerV5.sol
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/SmartVaultManagerV5.sol#L103-L105
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/SmartVaultManagerV5.sol#L107-L109
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/SmartVaultManagerV5.sol#L111-L113
In LiquidationPoolManager.sol
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/LiquidationPoolManager.sol#L84-L86
Consider to add min/max bounds to these funtions.
The receive function is not restricted to WETH token transfers, which could lead to unexpected token transfers to a smart contract. The unrestricted receive function may allow users to send native tokens to the contract. This could result in the undesired accumulation of tokens within the contract, making them permanently locked and inaccessible to the intended recipients.
In SmartVaultV3.sol
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/SmartVaultV3.sol#L125
In LiquidationPoolManager.sol
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/LiquidationPoolManager.sol#L31
To mitigate this issue, consider to implement a check within the receive function to ensure that only WETH token transfers are allowed.
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.