paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Linear-time temporal logic guided greybox fuzzing

线性时序逻辑引导的灰盒模糊测试
ICSE Proceedings of the 44th International Conference on Software Engineering2022匹配度 3/10 · 该论文研究LTL引导的灰盒模糊测试,属于形式化验证与测试领域,但未涉及LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户当前核心研究方向(PL与AI交叉)的直接匹配度较低。引用 38 inbox
Ruijie Meng, Zhen Dong, Jialin Li, Ivan Beschastnikh, Abhik Roychoudhury
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出 LTL-Fuzzer,将灰盒模糊测试扩展到寻找线性时序逻辑性质违反的反例。

软件模型检测与运行时验证常用于检查时序性质,但实践中多用于缺陷发现。本文提出 LTL-Fuzzer,一个基于 AFL 的灰盒模糊测试框架:输入 C/C++ 顺序程序与 LTL 性质,搜索违反该性质的反例轨迹(不承诺完成验证)。它把 directed greybox fuzzing 从到达特定位置或简单事件序扩展到任意复杂事件序。在 OpenSSL、Telnet 等协议实现上,LTL-Fuzzer 比模型检测器在固定时间预算内更快找到更多反例,复现已知 CVE,并从 RFC 提取性质发现 15 个零日缺陷(12 个获 CVE),覆盖 safety 与 liveness 性质违反,展示了模型检测、运行时验证与灰盒模糊测试的协同潜力。

问题
如何在有状态软件系统中高效发现线性时序逻辑(LTL)性质的违反(反例),而不是完成完整验证。
方法
构建基于 AFL 的灰盒模糊测试框架 LTL-Fuzzer,将 directed greybox fuzzing 扩展到任意复杂事件序,并以 LTL 性质引导搜索。
评估
在 OpenSSL、Telnet 等协议实现上与模型检测器比较,复现已知 CVE,发现 15 个零日缺陷(12 个 CVE),并检测 safety 与 liveness 违反。
原文摘要(Abstract)

Software model checking as well as runtime verification are verification techniques which are widely used for checking temporal properties of software systems. Even though they are property verification techniques, their common usage in practice is in “bug finding”, that is, finding violations of temporal properties. Motivated by this observation and leveraging the recent progress in fuzzing, we build a greybox fuzzing framework to find violations of Linear-time Temporal Logic (LTL) properties. Our framework takes as input a sequential program written in C/C++, and an LTL property. It finds violations, or counterexample traces, of the LTL property in stateful software systems; however, it does not achieve verification. Our work substantially extends directed greybox fuzzing to witness arbitrarily complex event or-derings. We note that existing directed greybox fuzzing approaches are limited to witnessing reaching a location or witnessing simple event orderings like use-after-free. At the same time, compared to model checkers, our approach finds the counterexamples faster, thereby finding more counterexamples within a given time budget. Our LTL-FUZZER tool, built on top of the AFL fuzzer, is shown to be effective in detecting bugs in well-known protocol implementations, such as OpenSSL and Telnet. We use LTL-FUZZER to reproduce known vulnerabilities (CVEs), to find 15 zero-day bugs by checking properties extracted from RFCs (for which 12 CVEs have been assigned), and to find violations of both safety as well as liveness properties in real-world protocol implementations. Our work represents a practical advance over software model checkers - while simultaneously representing a conceptual advance over existing greybox fuzzers. Our work thus provides a starting point for understanding the unexplored synergies among software model checking, runtime verification and greybox fuzzing.

链接与引用

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

BibTeX
@inproceedings{MengDLBR22,
  title = {Linear-time temporal logic guided greybox fuzzing},
  author = {Ruijie Meng and Zhen Dong and Jialin Li and Ivan Beschastnikh and Abhik Roychoudhury},
  booktitle = {ICSE},
  year = {2022},
  doi = {10.1145/3510003.3510082}
}