GHSA-rg2q-2jh9-447q is a medium-severity (CVSS 4.3) vulnerability in cosmwasm-vm. A fix is available for cosmwasm-vm — see the affected versions and patch details below.
Real-World Exposure
cosmwasm-vm🦀cosmwasm-vm🦀cosmwasm-vm🐹github.com/CosmWasm/wasmvm/v2🐹github.com/CosmWasm/wasmvm/v2🐹github.com/CosmWasm/wasmvmReal-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
Component: wasmvm Criticality: Medium (ACMv1: I:Moderate; L:Likely) Patched versions: wasmvm 1.5.4, 2.0.3, 2.1.2
Some Wasm operations take significantly more gas than our benchmarks indicated. This can lead to missing the gas target we defined by a factor of ~10x. This means a malicious contract could take 10 times as much time to execute as expected, which can be used to temporarily DoS a chain.
See CWA-2024-004 for more details.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🦀crates.io | cosmwasm-vm | all versions | 1.5.6cargo update -p cosmwasm-vm --precise 1.5.6 |
| 🦀crates.io | cosmwasm-vm | ≥ 2.0.0&&< 2.0.5 | 2.0.5cargo update -p cosmwasm-vm --precise 2.0.5 |
| 🦀crates.io | cosmwasm-vm | ≥ 2.1.0&&< 2.1.2 | 2.1.2cargo update -p cosmwasm-vm --precise 2.1.2 |
| 🐹Go | github.com/CosmWasm/wasmvm/v2 | ≥ 2.1.0&&< 2.1.2 | 2.1.2go get github.com/CosmWasm/wasmvm/v2@v2.1.2 |
| 🐹Go | github.com/CosmWasm/wasmvm/v2 | ≥ 2.0.0&&< 2.0.3 | 2.0.3go get github.com/CosmWasm/wasmvm/v2@v2.0.3 |
| 🐹Go | github.com/CosmWasm/wasmvm | all versions | 1.5.4go get github.com/CosmWasm/wasmvm@v1.5.4 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for cosmwasm-vm, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update cosmwasm-vm to 1.5.6 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-rg2q-2jh9-447q is resolved across your whole dependency graph.
Workarounds
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Frequently Asked Questions
Is GHSA-rg2q-2jh9-447q in your dependencies?
Find it across crates.io, Go, including transitive dependencies.