Wasmtime versions before 24.0.13, 25.0.0 before 36.0.14, 37.0.0 before 46.0.3, and 47.0.0 before 47.0.4 contain a filesystem sandbox escape vulnerability. This flaw exists in the wasmtime-wasi component due to improper handling of symlinks with trailing slashes by the cap-std dependency on macOS and Linux kernels lacking openat2 support. An attacker with write access to any sandboxed directory can read and write any host-accessible file, while read-only guests can read host files via preexisting symlinks.
Rust Wasmtime versions 46.0.0 before 46.0.3 and 47.0.0 before 47.0.4 contain an uncontrolled resource allocation vulnerability in the WASIp3 implementation. This flaw allows malicious guests to specify large buffer sizes for file or HTTP write streams, causing the host to buffer all bytes without limit, potentially exhausting host memory.
A fuel accounting flaw exists in Wasmtime versions 47.0.0 before 48.0.3 and 49.0.0 before 49.0.1 in the Cranelift-compiled call_ref and try_table catch paths. This flaw allows malicious guests to reset consumed fuel after calls, enabling them to run exponentially longer on linear fuel, bypassing timeouts and periodic yields. This can lead to denial of service conditions.
A vulnerability in rust-wasmtime versions prior to 36.0.16, 37.0.0 before 48.0.3, and 49.0.0 before 49.0.1 allows a malicious WebAssembly guest to bypass hostcall fuel limits by returning crafted values that allocate significantly more host memory than accounted for, leading to denial of service.
A vulnerability in wasmtime-wasi-http in Wasmtime versions before 36.0.16, 37.0.0 before 48.0.3, and 49.0.0 before 49.0.1 allows oversized writes on outgoing HTTP bodies. The component does not enforce the wasi:io/streams check-write allowance, enabling a malicious guest to pass large buffers that hold host memory allocations for the store's lifetime, potentially exhausting host memory.
A denial of service vulnerability exists in rust-wasmtime versions before 36.0.16, 37.0.0 before 48.0.3, and 49.0.0 before 49.0.1. The flaw is in wasmtime-wasi where guest WASI programs can cause the host to panic by overflowing filesystem timestamp fields. Specifically, attackers can pass atim or mtim values with sub-second fields that overflow the seconds field to certain filesystem time-setting functions, crashing the host process.
Rust Wasmtime versions before 36.0.17, 37.0.0 before 48.0.4, and 49.0.0 before 49.0.2 contain an information disclosure vulnerability in the WASIp1 fd_readdir implementation. This flaw causes uninitialized struct padding to be copied into guest memory, allowing guests with a preopened directory to receive three bytes of leftover host stack or heap memory per directory entry. The vulnerability has a low severity score and requires local privileges and user interaction to exploit.
A denial of service vulnerability exists in rust-wasmtime versions before 48.0.4 and 49.0.0 before 49.0.2 in the wasmtime-wasi WASIp3 implementation. Guests with mutable preopened directory access can trigger an assertion failure by calling set-times or set-times-at with negative timestamps, causing the host process to abort.
Wasmtime versions 39.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contain a critical stack buffer overflow vulnerability. This flaw allows malicious guest components to write approximately 16KB to the native stack by supplying mistyped async callback functions, potentially overwriting return addresses. Exploitation can lead to host crashes or sandbox escapes.
Rust Wasmtime versions 47.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contain an improper validation vulnerability. This flaw allows acceptance of components whose core modules import WebAssembly tags with a subtype of the original type. Malicious WebAssembly guests can exploit this to mis-type exception object payloads, leading to corruption of the garbage-collected heap and causing Wasmtime to panic when the exceptions proposal is enabled.
Rust Wasmtime versions 46.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contain a denial-of-service vulnerability in the wasi:http implementation. This flaw allows guest code to cause the host to panic and crash by specifying a zero between-bytes-timeout request option, which triggers a panic in the underlying Tokio API.
Rust wasmtime versions before 36.0.17, 37.0.0 before 48.0.4, and 49.0.0 before 49.0.2 contain an unbounded memory allocation vulnerability in the wasmtime-wasi SinkOutputStream write-zeroes method. This default stream is used when stdout/stderr are not configured. A malicious WebAssembly guest can exploit this by requesting large zero-filled writes, leading to host memory exhaustion and denial of service.
A denial of service vulnerability exists in rust-wasmtime versions before 36.0.17, 48.0.4, and 49.0.2 in the wasmtime-wasi WASI preview 0 poll_oneoff adapter. The flaw allows malicious guest modules to cause excessive host computation by passing many subscriptions, bypassing fuel limits and leading to potential service disruption.
Rust wasmtime versions 47.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contain a missing garbage collection (GC) rooting vulnerability. This flaw causes references to remain live but unrooted across try_call when compiling WebAssembly (Wasm) modules. An attacker can supply Wasm modules that trigger garbage collection during a callee, resulting in stale or dangling references that may corrupt the GC heap or cause incorrect execution.
Incus versions before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0 contain an arbitrary file write vulnerability in the sftpRecursivePullFile function. This flaw allows a malicious incus-agent with root privileges inside a virtual machine to escape the intended target directory during recursive file pulls, potentially writing attacker-controlled files such as /etc/shadow on the host system.
Incus versions before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0 contain an arbitrary file write vulnerability. This flaw allows attackers to write files on the host system by planting symbolic links in transferred volumes during migration. Exploitation involves crafting rsync or btrfs receive streams with symlinks pointing to sensitive host locations, potentially leading to full host compromise with root privileges.
Incus versions 7.0.1 prior to 7.0.2 and 7.2.0 prior to 7.5.0 contain an authorization bypass vulnerability. This flaw allows project-restricted clients to copy volumes from other projects by omitting the source.type parameter in crafted POST requests. Exploiting this vulnerability enables unauthorized reading of volumes, snapshots, and configurations belonging to other projects.
Incus versions 7.0.0 before 7.0.2 and 7.1.0 before 7.5.0 contain a critical path traversal vulnerability. This flaw allows clients with the ability to create instances to write arbitrary files on the host system by exploiting unvalidated custom volume names in instance backup index.yaml files. Attackers can craft backups with directory traversal sequences to create root-owned directories with attacker-controlled content, potentially leading to full host compromise.
Incus versions 7.0.0 before 7.0.2 and 7.1.0 before 7.5.0 have a vulnerability in their built-in S3 server's signature verification. This flaw allows holders of presigned URLs to inject unsigned x-amz-* headers, enabling an attacker to add an unsigned X-Amz-Copy-Source header to a presigned upload URL. Exploiting this, attackers can copy other objects from the bucket onto the granted key, potentially disclosing the contents and ETags of those objects.
Incus versions before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0 have a missing authorization vulnerability in the GET /1.0/operations/{uuid} endpoint. This flaw allows project-restricted clients to access operations from other projects if they possess a restricted certificate and know a valid operation UUID. Sensitive information such as command lines, environment secrets, websocket secrets, and trust enrolment tokens can be exposed. The vulnerability has a CVSS score of 6.3, indicating medium severity.