Nothing is Unreachable: Automated Synthesis of Robust Code-Reuse Gadget Chains for Arbitrary Exploitation Primitives
2025. 9. 18.
USENIX `25
Nicolas Bailluet, Emmanuel Fleury, Isabelle Puaut and Erven Rohou
Univ Rennes, Inria, CNRS, IRISA
Univ Bordeaux, CNRS, LaBRI
Timeline of Eternal Memory War
2
Timeline of Eternal Memory War
3
Code Injection Attack
Code Reuse Attack
Data-Only Attack
i.e. Shellcode injection
i.e. ret2libc, ROP
i.e. DOP, privilege escalation
NX
CFI
Timeline of Eternal Memory War
4
Code Injection Attack
Code Reuse Attack
Data-Only Attack
i.e. Shellcode injection
i.e. ret2libc, ROP
i.e. DOP, privilege escalation
NX
CFI
Still some exploits shows that it’s valid
Motivation - Limitation of ROP
5
- Without attacker’s capabilities
- Various memory layout
But,
Background - ROP
6
Background – SMT Solver & Taint Propagation
7
- They find whether variable values exist that satisfy given conditions.
- Traditional solvers are SAT (boolean Satisfiability Theory) 🡪 It only regards Boolean
- SMT can handle more various logical constraints
🡪 Expect to how tainted data are propagated in the program
- Taint means that data from untrusted sources (e.g. user-input)
Threat Model
8
Novelty of ARCANIST
9
The attacker sets goal, then ARCANIST tells it is possible or not (if possible, it shows how to reach the goal)
To do this, they combine two concept; robust reachability & Component-based program synthesis
🡺 They build one-shot SMT queries with this two concept
Comparison between SOTA and ARCANIST
10
SOTA
Comparison between ARCANIST and SOTA (Cont’d)
11
One-shot SMT query
Robust reachability
: it takes into parameter the exact exploitation layout, so it knows exactly which regions it can use
ARCANIST
Workflow of ARCANIST
12
Workflow of ARCANIST (Cont’d)
13
Robust Gadget Chaining Problem
14
How to robustly chaining the gadgets whatever uncontrollable (or unpredictable) values
They define changing problem as formula
Initial state 🡪 gadgets * n 🡪 final state (with no fail)
S : Specification (goal)
A : Assumption (initial state)
GS: How to achieve goal with no fail
p : controllable
u : uncontrollable
Robust Gadget Chaining Problem (Cont’d)
15
Definition
🡪 Could you reach the final state regardless of the u, after executing n gadgets?
GS: How to achieve goal with no fail
p : controllable
u : uncontrollable
SMT solver will judge the result with this formula
Evaluation
16
- Intel® Xeon®Gold 5218 CPU 64 Cores @ 2.30 GHz, with 93 GB of RAM
- Existing models : Ropium, Angrop, SGC
Evaluation
17
fcall# : synthesize the function with # parameters
Thought about this paper
18
APPENDIX
19
Thank you
20