GHSA-5fhj-g3p3-pq9g

Suggest an improvement
Source
https://github.com/advisories/GHSA-5fhj-g3p3-pq9g
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/07/GHSA-5fhj-g3p3-pq9g/GHSA-5fhj-g3p3-pq9g.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-5fhj-g3p3-pq9g
Aliases
  • CVE-2022-31146
Published
2022-07-20T22:47:13Z
Modified
2023-11-08T04:09:27.543738Z
Severity
  • 6.4 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:L CVSS Calculator
Summary
Wasmtime vulnerable to Use After Free with `externref`s
Details

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:

Database specific
{
    "nvd_published_at": "2022-07-21T04:15:00Z",
    "cwe_ids": [
        "CWE-416"
    ],
    "severity": "MODERATE",
    "github_reviewed": true,
    "github_reviewed_at": "2022-07-20T22:47:13Z"
}
References

Affected packages

crates.io / wasmtime

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.37.0
Fixed
0.38.2

crates.io / cranelift-codegen

Package

Name
cranelift-codegen
View open source insights on deps.dev
Purl
pkg:cargo/cranelift-codegen

Affected ranges

Type
SEMVER
Events
Introduced
0.84.0
Fixed
0.85.2