As of Wasmer version v4.2.3, Wasm programs can access the filesystem outside of the sandbox.
https://github.com/wasmerio/wasmer/issues/4267
A minimal Rust program:
fn main() {
let f = std::fs::OpenOptions::new()
.write(true)
.create_new(true)
.open("abc")
.unwrap();
}
This should be compiled with cargo build --target wasm32-wasi
. The compiled program, when run with wasmer WITHOUT --dir
, can still create a file in the working directory.
Service providers running untrusted Wasm code on Wasmer can unexpectedly expose the host filesystem.
{ "nvd_published_at": "2023-12-22T15:15:08Z", "cwe_ids": [ "CWE-284" ], "severity": "HIGH", "github_reviewed": true, "github_reviewed_at": "2023-12-13T13:32:38Z" }