{"paper":{"title":"From TinyGo to gc Compiler: Extending Zorya's Concolic Framework to Real-World Go Binaries","license":"http://creativecommons.org/licenses/by/4.0/","headline":"Zorya now handles multi-threaded gc-compiled Go binaries to detect vulnerabilities including silent integer overflows","cross_cats":["cs.SC","cs.SE"],"primary_cat":"cs.CR","authors_text":"Karolina Gorna, Keith Makan, Nicolas Iooss, Rida Khatoun, Yannick Seurin","submitted_at":"2026-05-05T08:31:22Z","abstract_excerpt":"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"},"claims":{"count":4,"items":[{"kind":"strongest_claim","text":"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.","source":"verdict.strongest_claim","status":"machine_extracted","claim_id":"C1","attestation":"unclaimed"},{"kind":"weakest_assumption","text":"That restoring OS thread states from gdb dumps and neutralizing runtime preemption preserves the original vulnerability behavior and does not introduce or mask bugs in multi-threaded gc-compiled Go binaries.","source":"verdict.weakest_assumption","status":"machine_extracted","claim_id":"C2","attestation":"unclaimed"},{"kind":"one_line_summary","text":"Zorya now analyzes real-world gc-compiled Go binaries and detects 7 of 11 evaluated vulnerabilities from projects like Kubernetes and Go-Ethereum, including a silent integer overflow missed by other tools without a manual oracle.","source":"verdict.one_line_summary","status":"machine_extracted","claim_id":"C3","attestation":"unclaimed"},{"kind":"headline","text":"Zorya now handles multi-threaded gc-compiled Go binaries to detect vulnerabilities including silent integer overflows","source":"verdict.pith_extraction.headline","status":"machine_extracted","claim_id":"C4","attestation":"unclaimed"}],"snapshot_sha256":"f05ae3ff28fdea8f5983037c0d37ecf55452a7b2111647ca6947583fed4a2c9f"},"source":{"id":"2605.03492","kind":"arxiv","version":2},"verdict":{"id":"adabc470-7a47-41ae-92e0-acc0b5b0e6c6","model_set":{"reader":"grok-4.3"},"created_at":"2026-05-07T15:48:25.822520Z","strongest_claim":"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.","one_line_summary":"Zorya now analyzes real-world gc-compiled Go binaries and detects 7 of 11 evaluated vulnerabilities from projects like Kubernetes and Go-Ethereum, including a silent integer overflow missed by other tools without a manual oracle.","pipeline_version":"pith-pipeline@v0.9.0","weakest_assumption":"That restoring OS thread states from gdb dumps and neutralizing runtime preemption preserves the original vulnerability behavior and does not introduce or mask bugs in multi-threaded gc-compiled Go binaries.","pith_extraction_headline":"Zorya now handles multi-threaded gc-compiled Go binaries to detect vulnerabilities including silent integer overflows"},"integrity":{"clean":true,"summary":{"advisory":0,"critical":0,"by_detector":{},"informational":0},"endpoint":"/pith/2605.03492/integrity.json","findings":[],"available":true,"detectors_run":[{"name":"ai_meta_artifact","ran_at":"2026-05-20T13:40:17.049864Z","status":"completed","version":"1.0.0","findings_count":0},{"name":"doi_title_agreement","ran_at":"2026-05-20T01:01:21.706012Z","status":"completed","version":"1.0.0","findings_count":0},{"name":"doi_compliance","ran_at":"2026-05-19T15:18:11.673051Z","status":"completed","version":"1.0.0","findings_count":0}],"snapshot_sha256":"f96ed0f914969c8bd720e32c6c9a5354b145733233704cc1e57dc6d5286e235f"},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"}