Researchers caught a security bug in a cryptocurrency wallet that could allow hackers to steal funds. This time, the product affected by the vulnerability turns out to be the Argent Ethereum wallet.
Argent Wallet Vulnerability
Reportedly, the security audit company OpenZeppelin has found a high-severity vulnerability in the Argent Ethereum wallet. As disclosed, exploiting the bug could let an attacker steal funds from compromised wallets.
Sharing the details in a blog post, the researchers explained that the bug existed because of the absence of Guardians. Describing Guardians, the researchers stated,
These are trusted accounts (externally-owned or contracts) that are given permission to execute specific actions on the wallet.
Though, the recent Argent wallets already come include guardian by default. However, the ones created before March 30, 2020, lacked this feature. Yet, following the roll-out of the update, all wallets upgraded to the latest version. Hence, there were many wallets that despite having this feature, didn’t have guardians in place.
Besides, the ones that did include it did not restrict the number of Guardians allowed for a wallet, even allowing wallets with no guardian. This posed as a serious vulnerability since Guardians can perform different sensitive actions, including wallet recovery.
So, in brief, it became possible for an adversary to execute wallet recovery via guardians without requiring signatures. After initiating recovery, an attacker would have to wait for the recovery period (36 hours) for the wallet to finalize recovery.
Though, such an attempt would alert the actual user via email or SMS. Hence, during this 36-hour recovery period, the victim could cancel the recovery to revert the attack.
Nonetheless, an attacker could continue making such attempts frequently, which became possible due to the lack of guardians. Ultimately, it would trigger a denial of service to the wallet, leaving the victim unable to perform any actions due to the extended recovery period.
Argent Patched The Bug
Following this discovery, the researchers reached out to Argent to report the flaw. They actually found 329 wallets immediately exposed to the risk, whereas, 5513 others could become vulnerable after updating to the latest version of Argent contracts.
After their report, the service patched the bug according to OpenZeppelin’s suggestion, who advised,
our preferred fix was to allow wallets with zero guardian, updating the logic in the
getRequiredSignatures
function of theRecoveryManager
contract so that the case for wallet recovery execution ensured that if a wallet had no guardians, the function did not return 0.
So, this is exactly what Argent did, in addition to urging the users to add at least one guardian to their wallets.
Fortunately, the bug remained unexploited, so no users would have lost the funds.
Let us know your thoughts in the comments.