WildSniper - The Vault
contract in the Mellow protocol allows users to register withdrawal requests to an arbitrary address, potentially enabling malicious actors to disrupt the withdrawal process by registering withdrawals to blacklisted addresses.
#297
Labels
Non-Reward
This issue will not receive a payout
Sponsor Disputed
The sponsor disputed this issue's validity
WildSniper
Medium
The
Vault
contract in the Mellow protocol allows users to register withdrawal requests to an arbitrary address, potentially enabling malicious actors to disrupt the withdrawal process by registering withdrawals to blacklisted addresses.Summary
The
Vault
contract in the Mellow protocol allows users to register withdrawal requests to an arbitrary address, potentially enabling malicious actors to disrupt the withdrawal process by registering withdrawals to blacklisted addresses.Vulnerability Detail
The
registerWithdrawal
function in theVault
contract permits users to specify ato
address, which is the recipient address for the withdrawal request. This opens up a potential attack vector where a malicious user can repeatedly register withdrawal requests to blacklisted addresses, causing subsequent withdrawal operations to revert when attempting to process these requests.Impact
The impact of this vulnerability is considered medium. It has the potential to break core contract functionality by disrupting the withdrawal process. If operators are forced to process withdrawals individually to avoid blacklisted addresses, it could lead to delays and inefficiencies. In a worst-case scenario, users might be compelled to initiate emergency withdrawals, potentially resulting in the loss of funds.
Code Snippet
The relevant code snippets are:
https://github.com/sherlock-audit/2024-06-mellow/blob/26aa0445ec405a4ad637bddeeedec4efe1eba8d2/mellow-lrt/src/Vault.sol#L434-L473
Tool used
Manual Review
Recommendation
To mitigate this vulnerability, the
Vault
contract should implement a mechanism to validate theto
address in theregisterWithdrawal
function. This could involve maintaining a list of approved or blacklisted addresses and checking theto
address against this list before allowing the withdrawal request to be registered. or to check by a call tousdc
contractAdditionally, the
processWithdrawals
function should be modified to skip or handle withdrawal requests to blacklisted addresses gracefully, without reverting the entire operation.Duplicate of #109
The text was updated successfully, but these errors were encountered: