CVE-2024-39696 Evmos vulnerable to exploit of smart contract account and vesting
Attackers can drain funds from any account by exploiting a logic flaw in vesting account creation that bypasses authorization checks.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-39696?
CVE-2024-39696 is a high-severity vulnerability in evmos, published on 5 Jul 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Evmos is a decentralized Ethereum Virtual Machine chain on the Cosmos Network. Prior to version 19.0.0, 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. The issue has been patched in version 19.0.0.
Weakness: CWE-863
Which versions are affected by CVE-2024-39696?
21 open source packages ship an affected version, including github.com/evmos/evmos/v18, github.com/evmos/evmos and github.com/evmos/evmos/v10. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
github.com/evmos/evmos/v18 Go | All versions | None |
github.com/evmos/evmos/v18 Go | All versions | 19.0.0 |
github.com/evmos/evmos/v18 Go | All versions | 19.0.0 |
github.com/evmos/evmos Go | All versions | None |
github.com/evmos/evmos/v10 Go | All versions | None |
github.com/evmos/evmos/v11 Go | All versions | None |
15 more packages
github.com/evmos/evmos/v12 Go | All versions | None |
github.com/evmos/evmos/v13 Go | All versions | None |
github.com/evmos/evmos/v14 Go | All versions | None |
github.com/evmos/evmos/v15 Go | All versions | None |
github.com/evmos/evmos/v16 Go | All versions | None |
github.com/evmos/evmos/v17 Go | All versions | None |
github.com/evmos/evmos/v19 Go | All versions | 19.0.0 |
github.com/evmos/evmos/v2 Go | All versions | None |
github.com/evmos/evmos/v3 Go | All versions | None |
github.com/evmos/evmos/v4 Go | All versions | None |
github.com/evmos/evmos/v5 Go | All versions | None |
github.com/evmos/evmos/v6 Go | All versions | None |
github.com/evmos/evmos/v7 Go | All versions | None |
github.com/evmos/evmos/v8 Go | All versions | None |
github.com/evmos/evmos/v9 Go | All versions | None |
Products include Evmos Evmos.
How do I fix CVE-2024-39696?
Upgrade github.com/evmos/evmos/v18 to 19.0.0 or later.
Is CVE-2024-39696 being exploited?
There is no known exploitation of CVE-2024-39696 in the wild and no public exploit code.
Other vulnerabilities in evmos
- CVE-2024-32644 Evmos' transaction execution not accounting for all state transition after interaction with precompiles
- CVE-2022-24738 Account compromise in Evmos
- CVE-2024-37153 Evmos's contract balance not updating correctly after interchain transaction
- CVE-2024-37154 Evmos allows unvested token delegations
- CVE-2024-37158 Evmos is missing precompile checks
Sources
Also known as GHSA-q6hg-6m9x-5g9c, GO-2024-2974.