Skip to content

Wasmtime CLI is vulnerable to host panic through its fd_renumber function

Low severity GitHub Reviewed Published Jul 18, 2025 in bytecodealliance/wasmtime • Updated Jul 21, 2025

Package

cargo wasmtime (Rust)

Affected versions

>= 10.0.0, < 24.0.4
>= 33.0.0, < 33.0.2
>= 34.0.0, < 34.0.2

Patched versions

24.0.4
33.0.2
34.0.2
cargo wasmtime-wasi (Rust)
< 24.0.4
>= 25.0.0, < 33.0.2
>= 34.0.0, < 34.0.2
24.0.4
33.0.2
34.0.2

Description

Summary

A bug in Wasmtime's implementation of the WASIp1 set of import functions can lead to a WebAssembly guest inducing a panic in the host (embedder).
The specific bug is triggered by calling path_open after calling fd_renumber with either:

  • two equal argument values
  • second argument being equal to a previously-closed file descriptor number value

The corrupt state introduced in fd_renumber will lead to the subsequent opening of a file descriptor to panic. This panic cannot introduce memory unsafety or allow WebAssembly to break outside of its sandbox, however. There is no possible heap corruption or memory unsafety from this panic.

This bug is in the implementation of Wasmtime's wasmtime-wasi crate which provides an implementation of WASIp1. The bug requires a specially crafted call to fd_renumber in addition to the ability to open a subsequent file descriptor. Opening a second file descriptor is only possible when a preopened directory was provided to the guest, and this is common amongst embeddings. A panic in the host is considered a denial-of-service vector for WebAssembly embedders and is thus a security issue in Wasmtime.

This bug does not affect WASIp2 and embedders using components.

Patches

In accordance with Wasmtime's release process patch releases are available as 24.0.4, 33.0.2, and 34.0.2. Users of other release of Wasmtime are recommended to move to a supported release of Wasmtime.

Workarounds

Embedders who are using components or are not providing guest access to create more file descriptors (e.g. via a preopened filesystem directory) are not affected by this issue. Otherwise there is no workaround at this time and affected embeddings are recommended to update to a patched version which will not cause a panic in the host.

References

@pchickey pchickey published to bytecodealliance/wasmtime Jul 18, 2025
Published by the National Vulnerability Database Jul 18, 2025
Published to the GitHub Advisory Database Jul 18, 2025
Reviewed Jul 18, 2025
Last updated Jul 21, 2025

Severity

Low

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:L

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(14th percentile)

Weaknesses

Operation on a Resource after Expiration or Release

The product uses, accesses, or otherwise operates on a resource after that resource has been expired, released, or revoked. Learn more on MITRE.

CVE ID

CVE-2025-53901

GHSA ID

GHSA-fm79-3f68-h2fc

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.