Summary
This advisory board aims to describe two vulnerabilities found in the Evmos codebase:
- Authorization check on the fundVestingAccount: unauthorized spend of funds.
Details
Authorization check on the fundVestingAccount
With the current implementation, a user can create a vesting account with a 3rd party account (EOA or contract) as funder. Then, this user can create an authorization for the contract.CallerAddress, this is the authorization checked in the code. But the funds are taken from the funder address provided in the message. Consequently, the user can fund a vesting account with a 3rd party account without its permission. The funder address can be any address, so this vulnerability can be used to drain all the accounts in the chain.
Severity
Based on ImmuneFi Severity Classification System the severity was evaluated to Critical since the attack could have lead to direct loss of funds.
Patches
The issue has been patched in versions >=V19.0.0
References
Summary
This advisory board aims to describe two vulnerabilities found in the Evmos codebase:
Details
Authorization check on the fundVestingAccount
With the current implementation, a user can create a vesting account with a 3rd party account (EOA or contract) as funder. Then, this user can create an authorization for the contract.CallerAddress, this is the authorization checked in the code. But the funds are taken from the funder address provided in the message. Consequently, the user can fund a vesting account with a 3rd party account without its permission. The funder address can be any address, so this vulnerability can be used to drain all the accounts in the chain.
Severity
Based on ImmuneFi Severity Classification System the severity was evaluated to Critical since the attack could have lead to direct loss of funds.
Patches
The issue has been patched in versions >=V19.0.0
References