GHSA-mx2j-7cmv-353c wasmvm: Malicious smart contract can slow down block production

Not scored Published

A malicious smart contract can slow down block production in CosmWasm chains, requiring library upgrades to mitigate.

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 GHSA-mx2j-7cmv-353c?

GHSA-mx2j-7cmv-353c is a denial of service vulnerability in github.com/CosmWasm/wasmvm, published on 4 Feb 2025. Any signed-in user can exploit it over the network, with no action from the victim.

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

Which versions are affected by GHSA-mx2j-7cmv-353c?

26 open source packages ship an affected version, including github.com/CosmWasm/wasmvm/v2, github.com/CosmWasm/wasmvm and cosmwasm-vm.

PackageAffectedFixed in
github.com/CosmWasm/wasmvm/v2 GoAll versions2.0.0-20250204103256-d62c3b826a9d
github.com/CosmWasm/wasmvm/v2 GoAll versions2.0.0-20250204103256-d62c3b826a9d
github.com/CosmWasm/wasmvm/v2 GoFrom 2.0.02.0.6, 2.1.5, 2.2.2
github.com/CosmWasm/wasmvm/v2 GoFrom 2.0.02.0.6
github.com/CosmWasm/wasmvm/v2 GoFrom 2.0.02.0.6
github.com/CosmWasm/wasmvm/v2 GoFrom 2.0.6-02.0.6-0.20250204103256-d62c3b826a9d
20 more packages
github.com/CosmWasm/wasmvm/v2 GoFrom 2.0.6-02.0.6-0.20250204103256-d62c3b826a9d
github.com/CosmWasm/wasmvm/v2 GoFrom 2.1.02.1.5
github.com/CosmWasm/wasmvm/v2 GoFrom 2.1.02.1.5
github.com/CosmWasm/wasmvm/v2 GoFrom 2.2.02.2.2
github.com/CosmWasm/wasmvm/v2 GoFrom 2.2.02.2.2
github.com/CosmWasm/wasmvm GoAll versions0.0.0-20250204093451-1f4db20199b8
github.com/CosmWasm/wasmvm GoAll versions0.0.0-20250204093451-1f4db20199b8
github.com/CosmWasm/wasmvm GoAll versions1.5.8
github.com/CosmWasm/wasmvm GoFrom 0.1.01.5.8
github.com/CosmWasm/wasmvm GoFrom 0.1.01.5.8
github.com/CosmWasm/wasmvm GoFrom 1.5.8-01.5.8-0.20250204093451-1f4db20199b8
github.com/CosmWasm/wasmvm GoFrom 1.5.8-01.5.8-0.20250204093451-1f4db20199b8
cosmwasm-vm crates.ioAll versions1.5.10
cosmwasm-vm crates.ioAll versions1.5.10
cosmwasm-vm crates.ioFrom 2.0.02.0.9
cosmwasm-vm crates.ioFrom 2.0.02.0.9
cosmwasm-vm crates.ioFrom 2.1.02.1.6
cosmwasm-vm crates.ioFrom 2.1.02.1.6
cosmwasm-vm crates.ioFrom 2.2.02.2.1
cosmwasm-vm crates.ioFrom 2.2.02.2.1

How do I fix GHSA-mx2j-7cmv-353c?

Upgrade github.com/CosmWasm/wasmvm/v2 to a fixed version for your release line: 2.0.0-20250204103256-d62c3b826a9d, 2.0.6, 2.1.5 or 2.2.2.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is GHSA-mx2j-7cmv-353c being exploited?

There is no known exploitation of GHSA-mx2j-7cmv-353c in the wild and no public exploit code.

Sources

Also known as GO-2025-3449.

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

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free