Bugs in compilers, which are critical infrastructure today, can have outsized negative impacts. Mutational fuzzers aid compiler bug detection by systematically mutating compiler inputs, i.e., programs. Their effectiveness depends on the quality of the mutators used. Yet, no prior work used compiler bug histories as a source of mutators. We propose IssueMut, the first approach for extracting compiler fuzzing mutators from bug histories. Our insight is that bug reports contain hints about program elements that induced compiler bugs; they can guide fuzzers towards similar bugs. IssueMut uses an automated method to mine mutators from bug reports and retrofit such mutators into existing mutational compiler fuzzers. Using IssueMut, we mine 587 mutators from 1760 GCC and LLVM bug reports. Then, we run IssueMut on these compilers, with all their test inputs as seed corpora. We find that "bug history" mutators are effective: they find new bugs that a state-of-the-art mutational compiler fuzzer misses-28 in GCC and 37 in LLVM. Of these, 60 were confirmed or fixed, validating our idea that bug histories have rich information that compiler fuzzers should leverage.


翻译:编译器作为当今关键基础设施,其存在的缺陷可能产生超乎寻常的负面影响。变异式模糊测试工具通过系统化地变异编译器输入(即程序)来辅助检测编译器缺陷,其有效性取决于所用变异算子的质量。然而,现有研究从未将编译器缺陷历史作为变异算子的来源。我们提出IssueMut——首个从缺陷历史中提取编译器模糊测试变异算子的方法。我们的核心洞见在于:缺陷报告包含引发编译器缺陷的程序元素线索,这些线索能引导模糊测试工具发现类似缺陷。IssueMut采用自动化方法从缺陷报告中挖掘变异算子,并将此类算子适配到现有的变异式编译器模糊测试工具中。通过IssueMut,我们从1760份GCC和LLVM缺陷报告中挖掘出587个变异算子。随后,我们以这些编译器的所有测试输入作为初始语料库运行IssueMut。实验表明,“缺陷历史”变异算子具有显著效果:它们发现了当前最先进的变异式编译器模糊测试工具未能检测到的新缺陷——GCC中28个,LLVM中37个。其中60个缺陷已获确认或修复,这验证了我们的观点:缺陷历史蕴含丰富信息,编译器模糊测试工具应当加以利用。

0
下载
关闭预览

相关内容

程序猿的天敌 有时是一个不能碰的magic
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
34+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Arxiv
43+阅读 · 2024年1月25日
Arxiv
45+阅读 · 2022年9月19日
Arxiv
13+阅读 · 2021年5月25日
VIP会员
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
相关论文
Arxiv
43+阅读 · 2024年1月25日
Arxiv
45+阅读 · 2022年9月19日
Arxiv
13+阅读 · 2021年5月25日
相关基金
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员