ECOOP 2025
Mon 30 June - Fri 4 July 2025 Bergen, Norway
Wed 2 Jul 2025 15:24 - 15:45 at Auditorium M003 - W2 Chair(s): Hila Peleg

We report on our experience designing a new technique and tool for fuzzing implementations of WebGPU, a W3C standard JavaScript API for in-browser GPU computing. We also report on our experience using our WebGlitch tool to test industrial-strength implementations of WebGPU, leading to the discovery of numerous bugs. WebGPU enables programmatic access to a device’s graphics processing unit (GPU) for in-browser GPU computing, and is being implemented by Google, Mozilla and Apple for inclusion in all of the major web browsers. Guaranteeing the security and reliability of WebGPU is crucial to avoid wide-reaching browser security vulnerabilities and to facilitate portability by ensuring uniform behaviour across different platforms. To that end—inspired by randomized compiler testing techniques—our approach to fuzzing creates random, valid-by-construction programs by continuously selecting a WebGPU API call, then recursively generating all requirements necessary for that API call to be valid based on careful modelling of the API specification. This is implemented as a new open source tool, WebGlitch, which we designed in consultation with engineers at Google who work on the Chrome WebGPU implementation. WebGlitch identifies bugs through sanitiser- boosted crash oracles, differential testing, and by identifying cases where valid-by-construction API calls lead to runtime errors. We present an evaluation showing that WebGlitch can find bugs missed by an existing WebGPU fuzzer, wg-fuzz, and across the broader WebGPU ecosystem: to date, WebGlitch has found 23 previously-unknown bugs, of which 16 affect WebGPU implementations from Google, Mozilla, and the Deno project. WebGlitch found an additional 4 in the shader compilers used by the graphics APIs that WebGPU interfaces with. The remaining 3 bugs affect the widely-used JavaScript runtimes Node.js and Deno. On top of the 23 new bugs found by WebGlitch, it identified 5 bugs that had been previously reported. Fuzzing with WebGlitch also led us to identify an ambiguity in the specification of the WebGPU shading language, for which we proposed an amendment that was accepted by W3C and which has been adopted in the latest version of the specification. Analysing the line coverage of a WebGPU implementation by WebGlitch-generated programs revealed that WebGlitch covers code missed by wg-fuzz and the official conformance test suite. Our hope is that this report on the design of WebGlitch and its deployment in practice will be useful for practitioners and researchers interested in using API fuzzing to improve the reliability of industrial codebases.

Wed 2 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

14:00 - 15:45
14:00
21m
Talk
Event Race Detection for Node.js Using Delay Injections
Technical Papers
Andre Takeshi Endo Federal University of São Carlos, Anders Møller Aarhus University
Pre-print
14:21
21m
Talk
FuzzFlesh: Randomised Testing of Decompilers Via Control Flow Graph-based Program GenerationRemote
Technical Papers
Amber Gorzynski Imperial College London, Alastair F. Donaldson Imperial College London
14:42
21m
Talk
PoTo: A Hybrid Andersen's Points-to Analysis for Python
Technical Papers
Ingkarat Rak-amnouykit Rensselaer Polytechnic Institute, Ana Milanova Rensselaer Polytechnic Institute, Guillaume Baudart Inria, Martin Hirzel IBM Research, Julian Dolby IBM Research
15:03
21m
Talk
Wastrumentation: Portable WebAssembly Dynamic Analysis with Support for Intercession
Technical Papers
Aäron Munsters Vrije Universiteit Brussel, Angel Luis Scull Pupo Sofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel
15:24
21m
Talk
WebGlitch: A Randomised Testing Tool for the WebGPU API
Technical Papers
:
:
:
: