Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🦀 crates.io🐹 Go

GHSA-mx2j-7cmv-353c

wasmvm: Malicious smart contract can slow down block production

Also known asGO-2025-3449
Published
Feb 4, 2025
Updated
Jul 9, 2025
Affected
12 pkgs
Patched
12 / 12
Exploits
None indexed

Blast Radius

12 pkgs affected
🦀cosmwasm-vm🦀cosmwasm-vm🦀cosmwasm-vm🦀cosmwasm-vm🐹github.com/CosmWasm/wasmvm🐹github.com/CosmWasm/wasmvm/v2🐹github.com/CosmWasm/wasmvm/v2🐹github.com/CosmWasm/wasmvm/v2+4 more

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects crates.io packages — download data is not available via public APIs for these ecosystems.

Description

CWA-2025-002

Severity

Medium (Moderate + Likely)1

Affected versions:

  • wasmvm >= 2.2.0, < 2.2.2
  • wasmvm >= 2.1.0, < 2.1.5
  • wasmvm >= 2.0.0, < 2.0.6
  • wasmvm < 1.5.8

Patched versions:

  • wasmvm 1.5.8, 2.0.6, 2.1.5, 2.2.2

Description of the bug

The vulnerability can be used to slow down block production. The attack requires a malicious contract, so permissioned chains are unlikely to be affected.

(We'll add more detail once chains had a chance to upgrade.)

Patch

Applying the patch

The patch will be shipped in releases of wasmvm. You can update more or less as follows:

  1. Check the current wasmvm version: go list -m github.com/CosmWasm/wasmvm
  2. Bump the github.com/CosmWasm/wasmvm dependency in your go.mod to one of the patched version depending on which minor version you are on; go mod tidy; commit.
  3. If you use the static libraries libwasmvm_muslc.aarch64.a/libwasmvm_muslc.x86_64.a, update them accordingly.
  4. Check the updated wasmvm version: go list -m github.com/CosmWasm/wasmvm and ensure you see 1.5.8, 2.0.6, 2.1.5 or 2.2.2.
  5. Follow your regular practices to deploy chain upgrades.

The patch is consensus breaking and requires a coordinated upgrade.

Acknowledgement

This issue was found by meadow101 who reported it to the Cosmos Bug Bounty Program on HackerOne.

If you believe you have found a bug in the Interchain Stack or would like to contribute to the program by reporting a bug, please see https://hackerone.com/cosmos.

Timeline

  • 2024-11-24: Confio receives a report through the Cosmos bug bounty program maintained by Amulet.
  • 2024-12-20: Confio security contributors confirm the report.
  • 2024-01-27: Confio developed the patch internally.
  • 2025-02-04: Patch gets released.

Footnotes

  1. following Amulet's Severity Classification Framework ACMv1.2: https://github.com/interchainio/security/blob/0295254e8645301ccb606d46108a45cede0a73e0/resources/CLASSIFICATION_MATRIX.md

Affected Packages

12 total 12 fixed
EcosystemPackageVulnerable rangeFix
🦀crates.iocosmwasm-vm2.2.0&&< 2.2.12.2.1
🦀crates.iocosmwasm-vm2.1.0&&< 2.1.62.1.6
🦀crates.iocosmwasm-vm2.0.0&&< 2.0.92.0.9
🦀crates.iocosmwasm-vmall versions1.5.10
🐹Gogithub.com/CosmWasm/wasmvm0.1.0&&< 1.5.81.5.8
🐹Gogithub.com/CosmWasm/wasmvm/v22.2.0&&< 2.2.22.2.2

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for cosmwasm-vm. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Fix

    Update cosmwasm-vm to 2.2.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-mx2j-7cmv-353c is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether GHSA-mx2j-7cmv-353c is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-mx2j-7cmv-353c. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

# CWA-2025-002 **Severity** Medium (Moderate + Likely)[^1] **Affected versions:** - wasmvm >= 2.2.0, < 2.2.2 - wasmvm >= 2.1.0, < 2.1.5 - wasmvm >= 2.0.0, < 2.0.6 - wasmvm < 1.5.8 **Patched versions:** - wasmvm 1.5.8, 2.0.6, 2.1.5, 2.2.2 ## Description of the bug The vulnerability can be used to slow down block production. The attack requires a malicious contract, so permissioned chains are unlikely to be affected. (We'll add more detail once chains had a chance to upgrade.) ## Patch - 1.5: https://github.com/CosmWasm/cosmwasm/commit/2b7f2faa57a1efc8207455c37f87f1eee6035a27 - 2.0: h
O3 Security · Impact-Aware SCA

Is GHSA-mx2j-7cmv-353c in your dependencies?

O3 detects GHSA-mx2j-7cmv-353c across crates.io, Go dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.