WebAssembly (abbreviated WASM) has emerged as a promising language of the Web and also been used for a wide spectrum of software applications such as mobile applications and desktop applications. These applications, named as WASM applications, commonly run in WASM runtimes. Bugs in WASM runtimes are frequently reported by developers and cause the crash of WASM applications. However, these bugs have not been well studied. To fill in the knowledge gap, we present a systematic study to characterize and detect bugs in WASM runtimes. We first harvest a dataset of 311 real-world bugs from hundreds of related posts on GitHub. Based on the collected high-quality bug reports, we distill 31 bug categories of WASM runtimes and summarize their common fix strategies. Furthermore, we develop a pattern-based bug detection framework to automatically detect bugs in WASM runtimes. We apply the detection framework to five popular WASM runtimes and successfully uncover 53 bugs that have never been reported previously, among which 14 have been confirmed and 6 have been fixed by runtime developers.
翻译:网络大会( abbreded WASM) 已成为网络中充满希望的语言,也被用于移动应用程序和桌面应用程序等广泛的软件应用程序。这些应用程序被称为WASM 应用程序,通常在WASM运行时运行。WASM运行时的错误经常被开发者报告,并导致WASM应用程序的崩溃。然而,这些错误还没有得到充分研究。为了填补知识空白,我们提出了一项系统的研究,以识别和检测WASM运行时的错误。我们第一次从GitHub上数百个相关邮站中采集了311个真实世界错误的数据集。根据收集到的高质量虫子报告,我们蒸馏了31个WASM运行时的错误类别,并总结了它们共同的修复战略。此外,我们开发了一个基于模式的错误检测框架,以便在WASM运行时自动检测虫子。我们对5个流行的WASM运行时,成功发现53个以前从未报告的错误,其中14个已经确认,6个已经由运行的开发者固定。