2.9
CVSS V3
Symlink bypasses filesystem sandbox
If the preopened directory has a symlink pointing outside, WASI programs can traverse the symlink and access host filesystem if the caller sets both oflags::creat
and rights::fd_write
. Programs can also crash the runtime by creating a symlink pointing outside with path_symlink
and path_open
ing the link.
Setup a filesystem as follows.
Compile this Rust snippet with wasi
v0.11 (for the preview1 API).
Run the compiled binary with Wasmer preopening preopen/
:
This should not print the contents of the outside.file
. Other runtimes like Wasmtime can successfully block this call. But Wasmer prints the contents of the file.