Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: GSA_kwCzR0hTQS01ZmhqLWczcDMtcHE5Z84AAtg8
Wasmtime vulnerable to Use After Free with `externref`s
There is a bug in Wasmtime's code generator, Cranelift, where functions using reference types may be incorrectly missing metadata required for runtime garbage collection (GC). This means that if a GC happens at runtime then the collector will mistakenly think some Wasm stack frames do not have live references to garbage collected values and therefore reclaim and deallocate them. The function can then subsequently continue to use the values, leading later to use-after-free bugs. This bug was introduced in Cranelift's migration to the regalloc2
register allocator in the Wasmtime 0.37.0 release on 2022-05-20. This bug has been patched and users should upgrade to Wasmtime version 0.38.2.
Mitigations for this issue can be achieved by doing one of:
- Disabling the reference types proposal by passing
false
towasmtime::Config::wasm_reference_types
. - Downgrading to Wasmtime 0.36.0 or prior.
JSON: https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS01ZmhqLWczcDMtcHE5Z84AAtg8
Source: GitHub Advisory Database
Origin: Unspecified
Severity: Moderate
Classification: General
Published: over 2 years ago
Updated: almost 2 years ago
CVSS Score: 6.4
CVSS vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:L
Identifiers: GHSA-5fhj-g3p3-pq9g, CVE-2022-31146
References:
- https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-5fhj-g3p3-pq9g
- https://github.com/bytecodealliance/wasmtime/commit/2ba4bce5cc719e5a74e571a534424614e62ecc41
- https://nvd.nist.gov/vuln/detail/CVE-2022-31146
- https://github.com/WebAssembly/reference-types
- https://github.com/bytecodealliance/wasmtime/
- https://github.com/advisories/GHSA-5fhj-g3p3-pq9g
Blast Radius: 22.6
Affected Packages
cargo:cranelift-codegen
Dependent packages: 59Dependent repositories: 3,397
Downloads: 14,193,910 total
Affected Version Ranges: >= 0.84.0, < 0.85.2
Fixed in: 0.85.2
All affected versions: 0.84.0, 0.85.0, 0.85.1
All unaffected versions: 0.14.0, 0.15.0, 0.16.0, 0.16.1, 0.17.0, 0.18.1, 0.19.0, 0.20.0, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.28.0, 0.29.0, 0.30.0, 0.31.0, 0.32.0, 0.33.0, 0.34.0, 0.35.0, 0.36.0, 0.37.0, 0.38.0, 0.39.0, 0.40.0, 0.41.0, 0.42.0, 0.43.0, 0.43.1, 0.44.0, 0.45.0, 0.46.0, 0.46.1, 0.47.0, 0.48.0, 0.49.0, 0.50.0, 0.51.0, 0.52.0, 0.53.0, 0.54.0, 0.55.0, 0.56.0, 0.58.0, 0.59.0, 0.60.0, 0.61.0, 0.62.0, 0.63.0, 0.64.0, 0.65.0, 0.66.0, 0.67.0, 0.68.0, 0.69.0, 0.70.0, 0.71.0, 0.72.0, 0.73.0, 0.73.1, 0.74.0, 0.75.0, 0.76.0, 0.77.0, 0.78.0, 0.79.0, 0.79.1, 0.80.0, 0.80.1, 0.81.0, 0.81.1, 0.81.2, 0.82.0, 0.82.1, 0.82.2, 0.82.3, 0.83.0, 0.85.2, 0.85.3, 0.86.0, 0.86.1, 0.87.0, 0.87.1, 0.88.0, 0.88.1, 0.88.2, 0.89.0, 0.89.1, 0.89.2, 0.90.0, 0.90.1, 0.91.0, 0.91.1, 0.92.0, 0.92.1, 0.93.0, 0.93.1, 0.93.2, 0.94.0, 0.94.1, 0.95.0, 0.95.1, 0.96.0, 0.96.1, 0.96.2, 0.96.3, 0.96.4, 0.97.0, 0.97.1, 0.97.2, 0.98.0, 0.98.1, 0.98.2, 0.99.0, 0.99.1, 0.99.2, 0.100.0, 0.100.1, 0.101.0, 0.101.1, 0.101.2, 0.101.3, 0.101.4, 0.102.0, 0.102.1, 0.103.0, 0.104.0, 0.104.1, 0.104.2, 0.104.3, 0.105.0, 0.105.1, 0.105.2, 0.105.3, 0.105.4, 0.106.0, 0.106.1, 0.106.2, 0.107.0, 0.107.1, 0.107.2, 0.108.0, 0.108.1, 0.108.2, 0.109.0, 0.109.1, 0.110.1, 0.110.2, 0.110.3, 0.111.0, 0.111.1, 0.112.0, 0.112.1, 0.112.2, 0.113.0
cargo:wasmtime
Dependent packages: 180Dependent repositories: 2,459
Downloads: 9,503,732 total
Affected Version Ranges: >= 0.37.0, < 0.38.2
Fixed in: 0.38.2
All affected versions: 0.37.0, 0.38.0, 0.38.1
All unaffected versions: 0.0.0, 0.3.0, 0.7.0, 0.8.0, 0.9.0, 0.10.0, 0.11.0, 0.12.0, 0.13.0, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0, 0.23.0, 0.24.0, 0.25.0, 0.26.0, 0.26.1, 0.27.0, 0.28.0, 0.29.0, 0.30.0, 0.31.0, 0.32.0, 0.32.1, 0.33.0, 0.33.1, 0.34.0, 0.34.1, 0.34.2, 0.35.0, 0.35.1, 0.35.2, 0.35.3, 0.36.0, 0.38.2, 0.38.3, 0.39.0, 0.39.1, 0.40.0, 0.40.1, 1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.0.1, 2.0.2, 3.0.0, 3.0.1, 4.0.0, 4.0.1, 5.0.0, 5.0.1, 6.0.0, 6.0.1, 6.0.2, 7.0.0, 7.0.1, 8.0.0, 8.0.1, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 10.0.0, 10.0.1, 10.0.2, 11.0.0, 11.0.1, 11.0.2, 12.0.0, 12.0.1, 12.0.2, 13.0.0, 13.0.1, 14.0.0, 14.0.1, 14.0.2, 14.0.3, 14.0.4, 15.0.0, 15.0.1, 16.0.0, 17.0.0, 17.0.1, 17.0.2, 17.0.3, 18.0.0, 18.0.1, 18.0.2, 18.0.3, 18.0.4, 19.0.0, 19.0.1, 19.0.2, 20.0.0, 20.0.1, 20.0.2, 21.0.0, 21.0.1, 21.0.2, 22.0.0, 22.0.1, 23.0.0, 23.0.1, 23.0.2, 23.0.3, 24.0.0, 24.0.1, 25.0.0, 25.0.1, 25.0.2, 26.0.0