CyberSecBulletin
CVE-2024-32644NVD status: Analyzed

evmos: Improper Synchronization

CVE-2024-32644 is a critical-severity improper synchronization vulnerability in evmos, with a CVSS 3.1 base score of 9.1 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. The record lists version 17.0.0 as the first without the flaw, so updating evmos to that release or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.94% chance of exploitation within 30 days, higher than 62% of scored CVEs.

Patch this week

Critical severity: a successful attack would have severe impact.

What to do

  1. Update evmos to 17.0.0 or a later version.
  2. Read the advisory on github.com for workarounds and exact fixed builds.
  3. Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.

Affected products and versions

VendorProductAffected versionsFixed in
Evmosevmos< 17.0.0; 17.0.0* up to, but not including, 17.0.017.0.0

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
NoneNo data is disclosed.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.19.1CriticalCNA (github.com)
CVSS 3.19.1CriticalNVD

Official 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.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Improper Synchronization

The product utilizes multiple threads, processes, components, or systems to allow temporary access to a shared resource that can only be exclusive to one process at a time, but it does not properly synchronize these actions, which might cause simultaneous accesses of this resource by multiple threads or processes.

How developers prevent this class of flaw

  • Use industry standard APIs to synchronize your code.

More Improper Synchronization vulnerabilities (CWE-662)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Other vulnerabilities in evmos

All evmos vulnerabilities

Recent Improper Synchronization vulnerabilities

Spotted an error? Tell us.