Skip to content

GHSA-vmqh-5232-v43r

Panic in wasmvm can slow down block production

Medium Gocrates.io
Severity
Medium
The publisher's own rating, not a CVSS score
Exploit chance (EPSS)
—
No score published
Known exploited
No
Not in CISA's catalog
Weakness
—
Not classified
Fix
Available
3 packages have a fixed version

Description

CWA-2024-008

Severity

Medium (Moderate + Likely)[^1]

Affected versions:

  • wasmvm >= 2.1.0, < 2.1.3
  • wasmvm >= 2.0.0, < 2.0.4
  • wasmvm < 1.5.5
  • cosmwasm-vm >= 2.1.0, < 2.1.4
  • cosmwasm-vm >= 2.0.0, < 2.0.7
  • cosmwasm-vm < 1.5.8

Patched versions:

  • wasmvm 1.5.5, 2.0.4, 2.1.3
  • cosmwasm-vm 1.5.8, 2.0.7, 2.1.4

Description of the bug

(Blank for now. 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 1.5.5, 2.0.4, 2.1.3 depending on which minor version you are; 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.5, 2.0.4, 2.1.3.
  5. Follow your regular practices to deploy chain upgrades.

To double check if the correct library version is loaded at runtime, use this query: <appd> query wasm libwasmvm-version. It must show 1.5.5, 2.0.4 or 2.1.3.

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-08-22: Confio receives a report through the Cosmos bug bounty program maintained by Amulet.
  • 2024-08-23: Confio security contributors confirm the report.
  • 2024-09-09: Confio developed the patch internally.
  • 2024-09-23: Patch is released.

[^1]: following Amulet's Severity Classification Framework ACMv1: https://github.com/interchainio/security/blob/e0227a1fb4059144aab4f6003eeee7f09912db3a/resources/CLASSIFICATION_MATRIX.md

Affected versions

Go

PackageVulnerableFixed in
github.com/CosmWasm/wasmvm
< 1.5.5
1.5.5
github.com/CosmWasm/wasmvm/v2
>= 2.1.0, < 2.1.3
2.1.3
github.com/CosmWasm/wasmvm/v2
>= 2.0.0, < 2.0.4
2.0.4

crates.io

PackageVulnerableFixed in
cosmwasm-vm
>= 2.1.0, < 2.1.4
2.1.4
cosmwasm-vm
>= 2.0.0, < 2.0.7
2.0.7
cosmwasm-vm
< 1.5.8
1.5.8

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

github.com/CosmWasm/wasmvm Go → 1.5.5

go
go get github.com/CosmWasm/wasmvm@v1.5.5 && go mod tidy

github.com/CosmWasm/wasmvm/v2 Go → 2.1.3

go
go get github.com/CosmWasm/wasmvm/v2@v2.1.3 && go mod tidy

cosmwasm-vm crates.io → 2.1.4

cargo
cargo update -p cosmwasm-vm --precise 2.1.4

References

Timeline

  1. Published
AdvisorySeverityWhy it's related
GHSA-mx2j-7cmv-353c
wasmvm: Malicious smart contract can slow down block production
Medium Also affects cosmwasm-vm
GHSA-2q97-m5rc-p3gp
CosmWasm VM Incorrect metering
Medium Also affects cosmwasm-vm
GHSA-75qh-gg76-p2w4
CWA-2023-004: Excessive number of function parameters in compiled Wasm
Medium Also affects cosmwasm-vm
GHSA-rg2q-2jh9-447q
Gas mispricing in cosmwasm-vm
Medium Also affects cosmwasm-vm
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor