Restart and Refine: Scalable IFDS Taint Analysis across Memory Budgets
Open Access
- 8 June 2026
- journal article
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Programming Languages
- Vol. 10 (PLDI) , 1987-2011
Abstract
Taint analysis, widely used for bug and vulnerability detection, is typically formulated as a flow- and context-sensitive IFDS analysis. To achieve field sensitivity, IFDS models heap locations as k-limited access paths but suffers from cubic time and quadratic space complexity, leading to prohibitive costs under realistic memory budgets and frequent out-of-memory failures or timeouts. Existing improvements target scalability or precision under abundant memory but remain fragile under constrained resources. We present ReFine, an iterative restart-and-refinement framework that enables scalable IFDS taint analysis across diverse memory budgets. When memory is exhausted, ReFine reuses partial results from terminated runs as sound under-approximations to guide subsequent iterations. Each restart occurs at a partial-analysis point, where results are abstracted and refined by leveraging that taint propagation is monotonic under field extension—allowing longer access paths to be safely summarized by their prefixes. We formalize this process as a fixpoint computation over product semilattices and prove soundness, correctness, and termination. Evaluated on 31 real-world Android apps against a state-of-the-art IFDS taint analysis, ReFine wraps it in a restart-and-refinement framework, analyzing 5.0x more apps under 16 GB and 2.4x more under 800 GB, with up to 52.5x speedup. By turning partial analyses into progressive refinement, ReFine delivers sound, precise, and highly scalable IFDS taint analysis across diverse memory budgets.Keywords
This publication has 41 references indexed in Scilit:
- SootUp: A Redesign of the Soot Static Analysis Framework2024
- Merge-Replay: Efficient IFDS-Based Taint Analysis by Consolidating Equivalent Value Flows2023
- Performance-Boosting Sparsification of the IFDS Algorithm with Applications to Taint Analysis2019
- PhASAR: An Inter-procedural Static Analysis Framework for C/C++2019
- Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T)2015
- Andromeda: Accurate and Scalable Security Analysis of Web Applications2013
- Practical Extensions to the IFDS Algorithm2010
- LLVM: A compilation framework for lifelong program analysis & transformation2004
- Precise interprocedural dataflow analysis with applications to constant propagationTheoretical Computer Science, 1996
- The expressive power of indeterminate dataflow primitivesInformation and Computation, 1992