# CVE-2022-31146: RUSTSEC-2022-0100 - Use After Free with `externref`s in Wasmtime

Source: https://junglewise.ai/threats/cve-2022-31146-wasmtime-vulnerable-to-use-after-free-with-externref-s  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2022-07-12  
License: CC BY 4.0 with a link back

CVE-2022-31146 · Severity: low · CVSS 3.1 · Published 2022-07-12

Use After Free with `externref`s in Wasmtime

Technologies: [cranelift-codegen (crates.io)](https://junglewise.ai/threats/technologies/cranelift-codegen), [wasmtime (crates.io)](https://junglewise.ai/threats/technologies/wasmtime). Vendors: [crates.io](https://junglewise.ai/threats/vendors/crates-io).

## Quick answers

**Is CVE-2022-31146 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2022-31146 being exploited in the wild.

**How severe is CVE-2022-31146?** Low severity, with a CVSS score of 3.1, published 12 July 2022.

**Which products and versions are affected?** cranelift-codegen (crates.io) SEMVER:introduced=0.84.0,fixed=0.85.2; wasmtime (crates.io) SEMVER:introduced=0.0.0-0,fixed=0.38.2, SEMVER:introduced=0.37.0,fixed=0.38.2.

**Is there a fix for CVE-2022-31146?** Yes. cranelift-codegen (crates.io): upgrade to 0.85.2 or later; wasmtime (crates.io): upgrade to 0.38.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**Am I affected by CVE-2022-31146?** Check whether you run cranelift-codegen (crates.io) or wasmtime (crates.io) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- cranelift-codegen (crates.io): upgrade to 0.85.2 or later

  ```sh
  cargo update -p cranelift-codegen
  ```

- wasmtime (crates.io): upgrade to 0.38.2 or later

  ```sh
  cargo update -p wasmtime
  ```


## Affected products

- cranelift-codegen (crates.io) SEMVER:introduced=0.84.0,fixed=0.85.2
- wasmtime (crates.io) SEMVER:introduced=0.0.0-0,fixed=0.38.2, SEMVER:introduced=0.37.0,fixed=0.38.2

## Identifiers

- CVE-2022-31146
- GHSA-5fhj-g3p3-pq9g
- RUSTSEC-2022-0100

## Related threats

- [RUSTSEC-2026-0422 - Typed functions with `i31` or `nullref` arguments may panic due to insufficient type-check](https://junglewise.ai/threats/rustsec-2026-0422-typed-functions-with-i31-or-nullref-arguments-may-0545dc2b)
- [Wasmtime type confusion with host-created struct types](https://junglewise.ai/threats/rustsec-2026-0423-cross-engine-type-confusion-with-host-created-struct-89fe3f0e)
- [Wasmtime unchecked memory usage in borrowed resource transfer](https://junglewise.ai/threats/rustsec-2026-0424-unchecked-memory-usage-in-transferring-borrowed-b297503c)
- [Wasmtime Cranelift aarch64 br_table sandbox escape](https://junglewise.ai/threats/cve-2026-115893-wasmtime-is-a-runtime-for-webassembly-prior-to-36-0-19-48-0-7)
- [Wasmtime component-model type-check bypass in stream/future lowering](https://junglewise.ai/threats/cve-2026-115892-wasmtime-is-a-runtime-for-webassembly-from-46-0-0-until-48-0-7)
