Vulnerabilities / CVE-2024-32644

critical

CVE-2024-32644

Evmos transaction execution not accounting for all state transition after interaction with precompiles

Published Modified CWE 662
In the Trivy database since at least 24 Oct 2026, 07:11 UTCWhen it arrived before that build is not recorded.

Severity by source

NVD9.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
GHSA9.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

Trivy's own label is CRITICAL. Rated critical by NVD, GHSA.

Description

Evmos is a scalable, high-throughput Proof-of-Stake EVM blockchain that is fully compatible and interoperable with Ethereum. Prior to 17.0.0, there is a way to mint arbitrary tokens due to the possibility to have two different states not in sync during the execution of a transaction. The exploit is based on the fact that to sync the Cosmos SDK state and the EVM one, we rely on the `stateDB.Commit()` method. When we call this method, we iterate though all the `dirtyStorage` and, **if and only if** it is different than the `originStorage`, we set the new state. Setting the new state means we update the Cosmos SDK KVStore. If a contract storage state that is the same before and after a transaction, but is changed during the transaction and can call an external contract after the change, it can be exploited to make the transaction similar to non-atomic. The vulnerability is **critical** since this could lead to drain of funds through creative SC interactions. The issue has been patched in versions >=V17.0.0.

Affected packages and fixed versions

SourcePackageFixed in
go::GitHub Security Advisory Gogithub.com/evmos/evmos/v16, github.com/evmos/evmos/v5, github.com/evmos/evmos/v6 and 6 more17.0.0
Show all 9 entries from 1 source
SourcePackageFixed in
go::GitHub Security Advisory Gogithub.com/evmos/evmos/v1617.0.0
go::GitHub Security Advisory Gogithub.com/evmos/evmos/v5no fix listed
go::GitHub Security Advisory Gogithub.com/evmos/evmos/v6no fix listed
go::GitHub Security Advisory Gogithub.com/evmos/evmos/v7no fix listed
go::GitHub Security Advisory Gogithub.com/tharsis/evmosno fix listed
go::GitHub Security Advisory Gogithub.com/tharsis/evmos/v2no fix listed
go::GitHub Security Advisory Gogithub.com/tharsis/evmos/v3no fix listed
go::GitHub Security Advisory Gogithub.com/tharsis/evmos/v4no fix listed
go::GitHub Security Advisory Gogithub.com/tharsis/evmos/v5no fix listed

References

Vulnerability data compiled from the Trivy vulnerability database (trivy-db, Aqua Security, Apache License 2.0), which aggregates third-party advisories. CVE records are published by The MITRE Corporation under the CVE Terms of Use; CVE is a trademark of MITRE. This product uses data from the NVD API but is not endorsed or certified by the NVD. Severity, titles and advisory data from the GitHub Advisory Database (CC BY 4.0), Red Hat security data (CC BY 4.0) and the other sources linked on each entry. Entries may be summarised or re-formatted; the linked original is the authoritative record.