English

From TinyGo to gc Compiler: Extending Zorya's Concolic Framework to Real-World Go Binaries

Cryptography and Security 2026-05-21 v2 Symbolic Computation Software Engineering

Abstract

Zorya is a concolic execution framework that lifts compiled binaries to Ghidra's P-Code intermediate representation and uses the Z3 SMT solver to detect vulnerabilities by reasoning over both concrete and symbolic values. Previous versions supported only single-threaded TinyGo binaries. In this paper, we extend Zorya to multi-threaded binaries produced by Go's standard gc compiler. This is achieved by restoring OS thread states from gdb dumps, neutralizing runtime preemption, and introducing overlay path analysis with copy-on-write semantics to detect silent vulnerabilities on untaken branches. We rigorously assess Zorya on 11 real-world vulnerabilities from production Go projects such as Kubernetes, Go-Ethereum, and CoreDNS. Our evaluation shows that Zorya detects seven bugs at the binary level, including a silent integer overflow detects no other evaluated tool finds without a manually written oracle.

Keywords

Cite

@article{arxiv.2605.03492,
  title  = {From TinyGo to gc Compiler: Extending Zorya's Concolic Framework to Real-World Go Binaries},
  author = {Karolina Gorna and Nicolas Iooss and Yannick Seurin and Rida Khatoun and Keith Makan},
  journal= {arXiv preprint arXiv:2605.03492},
  year   = {2026}
}

Comments

Preprint. Accepted in the 30th ACM International Conference on Evaluation and Assessment in Software Engineering (EASE 2026)