Owi: Performant Parallel Symbolic Execution Made Easy, an Application to WebAssembly
L\'eo Andr\`es (OCamlPro, France / Universit\'e Paris-Saclay - CNRS -, ENS Paris-Saclay - Inria - LMF, France), Filipe Marques (INESC-ID, Portugal /, University of Lisbon, Portugal), Arthur Carcano (OCamlPro, France), Pierre, Chambart (OCamlPro, France)

TL;DR
Owi is a modular, high-performance symbolic interpreter for WebAssembly that effectively detects bugs in C and Rust programs, outperforming existing tools in certain scenarios and ensuring better bug detection accuracy.
Contribution
We introduce Owi, a novel monadic, modular symbolic execution tool for WebAssembly, demonstrating its effectiveness and scalability in bug detection for multi-language codebases.
Findings
Owi achieves performance comparable to state-of-the-art tools.
Owi detects bugs more accurately in certain scenarios.
Owi scales well with large benchmarks.
Abstract
In this paper, we present the design of Owi, a symbolic interpreter for WebAssembly written in OCaml, and how we used it to create a state-of-the-art tool to find bugs in programs combining C and Rust code. WebAssembly (Wasm) is a binary format for executable programs. Originally intended for web applications, Wasm is also considered a serious alternative for server-side runtimes and embedded systems due to its performance and security benefits. Despite its security guarantees and sandboxing capabilities, Wasm code is still vulnerable to buffer overflows and memory leaks, which can lead to exploits on production software. To help prevent those, different techniques can be used, including symbolic execution. Owi is built around a modular, monadic interpreter capable of both normal and symbolic execution of Wasm programs. Monads have been identified as a way to write modular…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
