Emergency withdraw functions are missing zero address checks
Description
The withdrawERC20()
, withdrawERC20Full()
, withdrawMultipleERC20()
, and withdrawMultipleERC20Full()
are emergency withdrawal functions that can be called by the owner to withdraw ERC20 tokens that were mistakenly sent to the Paymaster contract. These tokens are withdrawn to a specified target
address.
Impact
The emergency withdraw functions are missing zero address checks for the target
address that the tokens will be withdrawn to. If the owner attempts to withdraw a substantial amount of tokens and accidentally sets target
to address(0)
, the tokens will be lost forever.
Recommendations
Consider adding in checks to ensure that target
is not equal to address(0)
. This has already been done in the withdrawAllNative()
function.
Remediation
Biconomy Labs implemented a fix for this issue in commit a88357ef2↗.