Oussama Draissi
Olympiapark, Munich

Oussama Draissi

Systems Security · Doctoral Researcher

Open to industry research & engineering roles

  • CCS · ISSTA · WWW · RAIDPublished at
  • Dr.-Ing. · expected 2027Doctorate in progress

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.

Programming
  • Rust
  • Python
  • C
  • C++
Focus
  • Memory corruption
  • Fuzzing
  • Binary analysis & rewriting
  • Taint analysis
  • Exploit development
  • Remote attestation
Platforms
  • WebAssembly
  • RISC-V
  • ARM64
  • Trusted execution environments (TEEs)
  • Blockchains (Solana, EVM)
Tools
  • AFL++
  • LLVM
  • pwntools
  • Ghidra
  • radare2
  • Foxhound
Spoken
  • German (native)
  • English (fluent)
  • Arabic (native)

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 — hunting memory corruption in WebAssembly
Wemby — Fuzzing WebAssembly for Memory Corruption on the Live Web

Wemby’s Web: Hunting for Memory Corruption in WebAssembly

ACM ISSTA 2025

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.

From WebAssembly memory corruption to cross-site scripting
From a WebAssembly Memory Bug to Cross-Site Scripting

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 WebAssembly
Bento — Isolating a Wasm Module's Memory Into Separate Instances

Bento: Fine-Grained Memory Isolation for COTS WebAssembly Binaries

The Web Conference (WWW) 2026

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
FuzzDelSol — Coverage-Guided Fuzzing of Solana Contract Binaries

FuzzDelSol: Fuzzing Solana Smart Contracts

ACM CCS 2023

The first binary-only, coverage-guided fuzzer for Solana smart contracts, and the largest security study of the Solana mainnet to date6,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 microarchitectural attacks and complex software
Attestation of Microarchitectural Attacks and Complex Software

Attestation of Attacks and Complex Software

DFG CROSSING · Area S2

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.

Talks

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.

FAILT — advanced information-leak exploitation
FAILT — Chasing Pointers to Defeat Memory Randomization

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 EngineeringUniversity 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 insurance data
DataMed — Graph-Based Anomaly Detection in Insurance Claims

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
CompatAI — Emergent Cooperation Among Learning Agents

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
WAT — A Binary-Only WebAssembly Analysis Toolkit

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.

WaWebFuzz — WebAssembly fuzzer for the web
WaWebFuzz — Web-Scale WebAssembly Fuzzing via wasm2c

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 progressUniversity 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.