RVISmith:面向 RVV 内建函数的编译器模糊测试
密码学与安全
2025-07-08 v1 分布式、并行与集群计算
编程语言
软件工程
摘要
现代处理器配备了单指令多数据(SIMD)指令以实现细粒度的数据并行性。针对 SIMD 指令的编译器自动向量化技术由于编译时可用信息不足而面临性能局限,这要求程序员手动操控 SIMD 指令。SIMD 内建函数(intrinsics)是现代编译器提供的一类内建函数,使程序员能够在高级编程语言中操控 SIMD 指令。编译器中针对 SIMD 内建函数的缺陷可能对软件安全构成潜在威胁,导致非预期的计算结果、数据丢失、程序崩溃等问题。为了检测编译器中针对 SIMD 内建函数的缺陷,我们提出了 RVISmith——一种随机化模糊测试器,它能够生成包含 RVV(RISC-V Vector Extension)内建函数各类调用序列的良构 C 程序。RVISmith 的设计目标如下:(i)实现高内建函数覆盖率,(ii)提升序列多样性,(iii)避免已知的未定义行为。我们基于已获批准的 RVV 内建函数规范实现了 RVISmith,并在三种现代编译器(GCC、LLVM 和 XuanTie)上对我们的方法进行了评估。实验结果表明,RVISmith 在内建函数覆盖率上达到了当前针对 RVV 内建函数的最佳模糊测试器的 11.5 倍。通过对不同编译器、不同优化选项以及等价程序的结果进行差异测试,我们迄今在所测试的三种编译器中检测并报告了 13 个此前未知的缺陷。其中,10 个已得到确认,另外 3 个已被编译器开发者修复。
引用
@article{arxiv.2507.03773,
title = {RVISmith: Fuzzing Compilers for RVV Intrinsics},
author = {Yibo He and Cunjian Huang and Xianmiao Qu and Hongdeng Chen and Wei Yang and Tao Xie},
journal= {arXiv preprint arXiv:2507.03773},
year = {2025}
}
备注
To appear in ACM CCS 2025