paperbot · PL 论文追踪

全部论文 待读 收藏

P2 EndWatch: A Practical Method for Detecting Non-Termination in Real-World Software

EndWatch:一种检测真实世界软件中非终止性的实用方法
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 3/10 · 论文属于程序分析与验证中的非终止检测,使用符号执行与测试结合,与静态分析/形式化验证相邻;但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析等用户核心交叉方向,因此匹配度有限。引用 6 inbox
Yao Zhang, Xiaofei Xie, Yi Li, Sen Chen, Cen Zhang, Xiaohong Li
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:通过状态重访预言机将非终止检测融入测试,可扩展地发现大型程序中的无限循环。

终止性分析长期面临可扩展性不足的问题,现有方法仅适用于小规模程序。本文提出 EndWatch,一种通过测试检测无限循环导致非终止的实用技术。其核心是基于状态重访生成非终止预言机:若程序在同一位置回到已访问状态则不终止。对线性循环,通过对单个循环符号执行推断状态重访条件(SRC)并插桩到目标循环;对非线性循环,则插桩以在运行期检查具体状态重访。这些预言机可集成到测试工具(如 AFL)中以检测大型程序的非终止。在标准基准上,EndWatch 检测出 87% 的非终止程序,优于最佳基线的 67%;在真实项目中,检测出 90% 的已知非终止 CVE 及 4 个未知缺陷。

问题
终止性分析的可扩展性有限,现有方法难以应用于大型真实程序,非终止(如无限循环)会导致正确性与安全问题。
方法
基于状态重访生成非终止预言机:线性循环用符号执行推断状态重访条件(SRC)并插桩,非线性循环在运行期检查具体状态重访,再集成到 AFL 等测试工具中。
评估
在标准小规模基准和真实大型项目上评估,标准基准检测出 87%(最佳基线 67%),真实项目检测出 90% 的已知非终止 CVE 和 4 个未知缺陷。
原文摘要(Abstract)

Detecting non-termination is crucial for ensuring program correctness and security, such as preventing denial-of-service attacks. While termination analysis has been studied for many years, existing methods have limited scalability and are only effective on small programs. To address this issue, we propose a practical termination checking technique, called EndWatch, for detecting non-termination caused by infinite loops through testing. Specifically, we introduce two methods to generate non-termination oracles based on checking state revisits, i.e., if the program returns to a previously visited state at the same program location, it does not terminate. The non-termination oracles can be incorporated into testing tools (e.g., AFL used in this paper) to detect non-termination in large programs. For linear loops, we perform symbolic execution on individual loops to infer State Revisit Conditions (SRCs) and instrument SRCs into target loops. For non-linear loops, we instrument target loops for checking concrete state revisits during execution. We evaluated EndWatch on standard benchmarks with small-sized programs and real-world projects with large-sized programs. The evaluation results show that EndWatch is more effective than the state-of-the-art tools on standard benchmarks (detecting 87% of non-terminating programs while the best baseline detects only 67%), and useful in detecting non-termination in real-world projects (detecting 90% of known non-termination CVEs and 4 unknown bugs).

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{abs-2312-03335,
  title = {EndWatch: A Practical Method for Detecting Non-Termination in Real-World Software},
  author = {Yao Zhang and Xiaofei Xie and Yi Li and Sen Chen and Cen Zhang and Xiaohong Li},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00061}
}