About
I am a research scientist and doctoral candidate at the Systems Security group of the University of Duisburg‑Essen, advised by Prof. Lucas Davi, where I expect to defend my Dr.-Ing. in 2027.
Broadly, I research sandboxed bytecode: runtimes like WebAssembly that execute untrusted programs inside a host, and how to use them to raise the security of applications across very different platforms. My concrete focus is memory corruption: how it arises in places people assume are safe, how to find it automatically through fuzzing and program analysis, and how to contain it with practical, low-overhead defenses. The same questions recur across the web browser and WebAssembly, blockchains, trusted execution environments, and emerging instruction sets such as RISC-V, and the underlying skills in program analysis, reverse engineering, and building tools that scale carry well beyond any one of them. This work has appeared at ACM CCS, ISSTA, RAID, and The Web Conference.
Research
A few highlights, starting with the work I am best known for. Together they trace one arc, from large-scale vulnerability discovery to practical low-overhead defenses to attestation.
Wemby’s Web: Hunting for Memory Corruption in WebAssembly
The first holistic fuzzer for WebAssembly on the live web: 232× faster and +46% coverage over prior Wasm fuzzers, surfacing real bugs including one on the Zoom platform. A measurement of 37,797 domains found 77.81% forward unchecked WebAssembly memory straight into XSS-prone sinks.
Wemby is presented as a fuzzer, but its real contribution is a threat model.
WebAssembly runs untrusted, memory-unsafe code in the browser, and most sites
fully trust the data coming out of Wasm memory, data that is routinely passed into
security-sensitive sinks such as eval or innerHTML.
By corrupting Wasm memory, an attacker controls values the surrounding page implicitly forwards into the DOM, turning a memory bug into JavaScript execution, that is, cross-site scripting (XSS). Wemby’s binary-only instrumentation provides fine-grained memory-corruption oracles and makes Wasm-powered websites analyzable end to end.
This is the most over-engineered project I have worked on, and the one I am proudest of. After five top-tier rejections, each asking for more evaluation, I rewrote the paper and re-implemented the system from scratch, building the taint analysis on a fork of SAP’s Foxhound taint-tracking browser (a fork of a fork, since upstream could not taint integers). A collaboration with Martin Johns’ group at TU Braunschweig and AWS, Wemby came together in a few months with David Klein and Thomas Barber.
Bento: Fine-Grained Memory Isolation for COTS WebAssembly Binaries
The first static binary rewriter that automatically hardens commercial-off-the-shelf WebAssembly modules: a software MMU built on the Wasm multi-memory feature, with no new instructions and no runtime checks, neutralizing real exploits at 3% runtime / 1% startup overhead.
Bento runs a whole-program pointer analysis to split a module’s monolithic linear memory into logical regions (stack, heap, globals) and rewrites the binary so each region lives in an isolated instance. It neutralizes real-world exploits in applications such as libpng and pdfalto, and preserves program semantics, confirmed by differential testing.
Bento grew directly out of Wemby: I wanted to neutralize the bugs we were finding without the cost of runtime checks, and the multi-memory proposal was a perfect fit. Because LLVM cannot yet target multi-memory, we wrote the binary rewriter ourselves, and chose differential testing over symbolic execution to validate correctness (one RiscyROP was enough formal-methods pain). We are reimplementing it as a compiler pass and will open-source it once that is ready.
FuzzDelSol: Fuzzing Solana Smart Contracts
The first binary-only, coverage-guided fuzzer for Solana smart contracts, and the largest security study of the Solana mainnet to date—6,049 contracts—finding impactful vulnerabilities with high precision and recall.
Solana’s stateless execution model introduces attack patterns that Ethereum-focused tooling misses, and most contracts ship without source code. FuzzDelSol works directly on the contract binary: it faithfully models runtime behavior such as contract interactions, extracts low-level program and state information, and builds bug oracles for every major Solana bug class.
The project began as a side experiment when I joined the group as a research assistant. Jens-René Giesen wanted a smart-contract platform beyond Ethereum, Solana was new and rising, and a 2022 prototype quickly convinced us. We grew it into a master’s project group of four students, including Pascal Winkler, who later joined our group. A collaboration with Klaus Pohl’s requirements-engineering group and Ghassan Karame, it was published at ACM CCS 2023.
Attestation of Attacks and Complex Software
Pushing remote attestation beyond embedded devices: to microarchitectural attacks such as Rowhammer and to complex, high-attack-surface software such as WebAssembly applications and cross-chain bridges.
My current work belongs to the DFG CROSSING project (area S2, concluding July 2026). Where classical attestation targets embedded devices, we ask how a remote party can gain evidence of microarchitectural attacks, and how to attest complex software.
This line includes Walma, which learns to recognize memory-corruption patterns in WebAssembly; Towards Remote Attestation of Microarchitectural Attacks, on attesting Rowhammer; and Brigade ($2B Lessons, ACNS 2026), a Tamarin-verified defense that prevents token losses in cross-chain bridges, evaluated against twelve real-world attacks on Ethereum, Solana, and BNB Chain. My contribution to Brigade was editorial, and, admittedly, the name.
Publications
Author names are abbreviated and my own is in bold. The complete, up-to-date list lives on Google Scholar.
-
Bento: Fine-Grained Memory Isolation for COTS WebAssembly Binaries. O. Draissi, L. Davi. The Web Conference (WWW), 2026. · DOI
-
Walma: Learning to See Memory Corruption in WebAssembly. O. Draissi, M. Günzel, A.-R. Sadeghi, L. Davi. Preprint, 2026. · arXiv
-
Towards Remote Attestation of Microarchitectural Attacks: The Case of Rowhammer. M. Herrmann, O. Draissi, C. Niesler, A.-R. Sadeghi, L. Davi. Preprint, 2026. · arXiv
-
$2B Lessons: Brigade as a Defense Against Real-World DeFi Bridge Exploits. P. Winkler, J.-R. Giesen, O. Draissi, F. Badaloni, S. Holler, C. Schneidewind, L. Davi. ACNS, 2026.
-
Wemby’s Web: Hunting for Memory Corruption in WebAssembly. O. Draissi, T. Cloosters, D. Klein, M. Rodler, M. Musch, M. Johns, L. Davi. ACM ISSTA, 2025. · DOI
-
Memory Corruption at the Border of Trusted Execution. T. Cloosters, O. Draissi, J. Willbold, T. Holz, L. Davi. IEEE Security & Privacy Magazine, 22(4), 2024. · DOI
-
Fuzz on the Beach: Fuzzing Solana Smart Contracts. S. Smolka, J.-R. Giesen, P. Winkler, O. Draissi, L. Davi, G. Karame, K. Pohl. ACM CCS, 2023. · DOI
-
RiscyROP: Automated Return-Oriented Programming Attacks on RISC-V and ARM64. T. Cloosters, D. Paaßen, J. Wang, O. Draissi, P. Jauernig, E. Stapf, L. Davi, et al. RAID, 2022. · DOI
Talks
-
Hunting for Memory Corruption in WebAssembly Slides (PDF) pptx
-
Attestation of Attacks and Complex Software Slides (PDF) pptx
-
Introduction to IT Security — outreach lecture (Lehrerfortbildung) Slides (PDF) pptx
CV
Education
B.Sc. Applied Computer Science (Systems Engineering) — University of Duisburg‑Essen 2015–2019
My path into systems security started here, with my Bachelor’s thesis.
Bachelor’s thesis — Automated Advanced Information-Leak Exploitation
FAILT—runtime memory-disclosure exploitation built around one counterintuitive finding: the more defenses a system piles on, the more surface it exposes for pointer disclosure. With no offline phase it recovered most of a binary’s segments under state-of-the-art randomization, even locating the stack under an active Safe Stack, and told code from data pointers with >90% accuracy.
Supervised by Michael Rodler, I built FAILT (the Furious and Advanced Information Leakage Tool), fusing the memory-disclosure strategies of JIT-ROP and the Pathfinder framework. Unlike Pathfinder it needs no offline phase, filtering invalid addresses at runtime through heuristics; unlike JIT-ROP it follows arbitrary pointers of any type rather than only code pointers. The recurring lesson was structural: the very mechanisms meant to harden a binary—randomization metadata, shadow stacks, indirection tables—add pointers and bookkeeping that amplify memory disclosure rather than prevent it.
Its heuristics were deliberately simple and overfitted to the evaluation system, so I did not pursue the line further. Its real value was an early, hands-on grasp of memory disclosure and mitigation bypasses, which fed directly into our later RiscyROP work.
M.Sc. Software and Network Engineering — University of Duisburg‑Essen 2019–2022
During my Master’s I worked on three projects, described below, before writing my thesis on memory-corruption discovery in WebAssembly.
DataMed: Anomaly Detection in Medical Insurance Data
A graph-analysis prototype, built with the Barmenia insurance group, to surface organized insurance fraud—a problem worth an estimated €4–5 billion a year across the German industry.
We designed and implemented an analysis platform that builds graphs from Barmenia’s claims data and flags anomalous structures that may point to organized, band-like fraud. The prototype did uncover anomalies; whether each truly indicates fraud could not be settled within the project, since data-protection rules kept us from the real records and that judgement belongs to a claims adjuster. Even so, the results and Barmenia’s feedback suggested the approach is sound.
CompatAI: Comparative Training of AI Agents
A multi-agent reinforcement-learning study of emergent cooperation and competition: a hierarchical communication scheme measurably improved performance, and cooperation correlated clearly with winning.
We evaluated multi-agent learning in two demanding game environments, Pommerman and Food Collector, adapting both to competitive and non-competitive team play and building custom visualization tools to make the emergent collaboration legible. My contribution centered on the communication, collaboration, and competition between agents, and on the visualization that made it observable.
WAT: WebAssembly Analysis Toolkit
My first WebAssembly project: to our knowledge the first binary-only Wasm fuzzer, driven entirely by dynamic instrumentation of the binary inside its JavaScript host.
WAT builds on Wasabi, a dynamic-analysis framework that instruments a WebAssembly binary as it runs in its JavaScript host. From Wasabi’s taint instrumentation it locates pointers and automatically synthesizes fuzzing harnesses, crash oracles, and stubs for missing imports, then drives them with AFL++. Fuzzing the 100 smallest binaries from Marius Musch’s New Kid on the Web study of WebAssembly in the wild—a corpus dominated by cryptojacking modules—surfaced many crashes, but those modules came stripped of any surrounding context, so there was no way to faithfully reproduce their execution. (Musch later collaborated with us on Wemby.) Confronting that became the starting point for my thesis.
Master’s thesis — WaWebFuzz: A WebAssembly Fuzzer for the Web
Large-scale fuzzing of WebAssembly in the wild via ahead-of-time wasm2c translation: of 2,844,980 websites crawled, 9,526 used WebAssembly, and 34% of the in-production modules analyzed contained memory errors.
Where WAT instrumented binaries dynamically, WaWebFuzz took the opposite route. It lifts each module ahead-of-time to native code with wasm2c (WebAssembly → C → compiled binary) and fuzzes that native binary, modelled on the Ethereum EF/CF fuzzer of my former supervisor Michael Rodler. Compiling the module out of the browser bought the raw throughput to crawl and fuzz at web scale. The catch is structural: wasm2c lifts the code out of its host, discarding the surrounding page and the real threat model, so the memory errors it found were not reproducibly exploitable. Resolving that is exactly what led to Wemby, which does not run in the browser but faithfully reproduces its environment, so the bugs it finds are genuinely exploitable.
Dr.-Ing. Computer Science — doctorate in progress — University of Duisburg‑Essen since 2022 · expected 2027
On memory-safety analysis and defenses across WebAssembly, trusted execution, and emerging instruction sets, advised by Prof. Lucas Davi. Its core work is described in the Research section.
Experience
Research Scientist & Doctoral Candidate — Systems Security, University of Duisburg‑Essen since 2022
Research staff member (Wissenschaftlicher Mitarbeiter) in the group of Prof. Lucas Davi, working on memory-safety analysis and defenses for WebAssembly, trusted execution, and emerging instruction sets, and pursuing a Dr.-Ing. (expected 2027). I mentor student project groups and theses.
Research Assistant (Wissenschaftliche Hilfskraft) — Systems Security, University of Duisburg‑Essen 2019–2022
Researched RISC-V security, with a focus on trusted execution environments, and wrote exploits for the platform, first by hand and later automatically through our RiscyROP work—a collaboration with Ahmad-Reza Sadeghi’s group at TU Darmstadt whose co-authors went on to found the hardware-security startup Sanctuary. I also co-designed the exploitation lab for the Secure Software Systems (M.Sc.) course, a series of mini-CTFs that teach students hands-on exploitation.
Student Research Assistant (Studentische Hilfskraft) — Systems Security, University of Duisburg‑Essen 2017–2019
One of the first hires of the then-newly-formed group. I supported teaching for the Reverse Engineering (B.Sc.) and Secure Software Systems (M.Sc.) courses: I prepared course research, wrote data-only exploits and ported them to pwntools, and reproduced and analyzed the artifacts of academic security papers.
Teaching & Supervision
Teaching assistant — Secure Software Systems (M.Sc.) — University of Duisburg‑Essen since 2017
Teaching assistant — Reverse Engineering (B.Sc.) — University of Duisburg‑Essen WS/SS 2020/2021
Thesis supervision — advised 12+ Bachelor’s and Master’s theses in systems and software security.
Contact
The best way to reach me is by email at oussama.draissi@protonmail.com. You can also find me on Google Scholar, ORCID, GitHub, LinkedIn, and my group page. I am based in Essen, Germany, and always glad to talk about memory safety, fuzzing, and research collaborations or opportunities.