Agenda

PhD defense Karolina Gorna: Automated Vulnerability Detection in Go

Thursday 8 Oct., 2026, at 14:00 (Paris time) at Télécom Paris

Télécom Paris, 19 place Marguerite Perey F-91120 Palaiseau [getting there], amphi 2 and in videoconferencing

Full title: Automated Vulnerability Detection in Go: Concolic Execution for Multi-Threaded Binaries

Jury

  • David MONNIAUX, Research Director, CNRS and Université Grenoble Alpes, VERIMAG (Reviewer)
  • Jean-Yves MARION, Professor, Université de Lorraine / CNRS / École Nationale Supérieure des Mines de Nancy (Reviewer)
  • Lesly-Ann DANIEL, Assistant Professor, EURECOM (Examiner)
  • Pierre WILKE, Associate Professor, CentraleSupélec (Examiner)
  • Rida KHATOUN, Professor, Télécom Paris, Institut Polytechnique de Paris (Thesis Supervisor)
  • Yannick SEURIN, PhD, Ledger Donjon (Thesis Co-supervisor)
  • Nicolas IOOSS, Engineer, Ledger Donjon (Guest)
  • Robin DAVID, PhD, Epsilon (Guest)

Abstract

Go has become a dominant language for cloud-native and blockchain infrastructure, yet most binary-analysis tools target C, C++, or Java and do not handle the large, statically linked executables, the non-standard calling conventions, and the embedded M:N runtime that the Go toolchain produces. This thesis develops Zorya, a binary-level concolic execution engine for compiled Go, built on Ghidra’s P-Code intermediate representation and the Z3 SMT solver.

Learn more
Three contributions are presented. First, LogicBombs-Go, a dual-compiler benchmark corpus of 25 Go programs with ground-truth trigger conditions, compiled with both the TinyGo and the reference gc toolchains. Second, a single-threaded engine that interprets P-Code against a faithful x86-64 CPU and memory model, detects vulnerabilities at the micro-operation level, and explores untaken branches through a panic-gated filter cascade that concentrates solver queries on branches able to reach a known panic site. Third, an extension to gc-compiled binaries whose runtime is multi-threaded, through multi-thread state recovery, controlled preemption neutralisation, and overlay concolic execution, a copy-on-write replay of untaken branches that detects silent vulnerabilities such as integer overflows that leave no panic marker. The evaluated gc results target sequential vulnerability classes inside multi-threaded runtime artefacts under a main-only scheduling policy; systematic goroutine-interleaving exploration is prepared through Volos but remains future work. On real-world vulnerabilities from Kubernetes, Go-Ethereum, and other production projects, Zorya detects bugs that static analysers and binary symbolic executors miss, including a silent overflow no other evaluated tool finds without a hand-written oracle, and a disclosure campaign surfaced twenty-two further findings. Zorya analyses compiled artefacts without source instrumentation or fuzzing harnesses; however, the evaluated function mode relies on DWARF debug information and unstripped symbols to recover argument layouts. The thesis also lays the design and an initial implementation for concurrency-bug detection, and Zorya is released as open source.