一句话:提出首个 CUDA 导向的模糊测试器 cuFuzz,通过全程序模糊测试、设备端覆盖率反馈与 sanitizer 解耦,发现 43 个未知 bug。
GPU 在现代软件中日益重要,但异构的主机-设备执行模型和不断膨胀的软件栈使 GPU 程序容易产生静态分析难以捕捉的内存安全与并发缺陷。已有 GPU 模糊测试工作受限于三个障碍:内核级模糊测试导致误报、缺少设备端覆盖率引导反馈、覆盖率与 sanitizer 工具不兼容。本文提出 cuFuzz,首个面向 CUDA 的模糊测试器:采用全程序模糊测试避免独立测试设备内核带来的误报;利用 NVBit 插桩设备端指令,并将设备端覆盖率与基于编译器的宿主端覆盖率合并;通过在不同进程中运行宿主端与设备端 sanitizer,将净化与覆盖率收集解耦。评估在 14 个 CUDA 程序上展开,共发现 43 个此前未知的缺陷(其中 19 个位于商业库),涵盖非法内存访问、未初始化读取和数据竞争。相比基线方法,cuFuzz 尤其在闭源目标上发现了更多边和独特输入;作者还量化了各组件开销,并加入持久模式支持以提升模糊测试吞吐。
GPUs play an increasingly important role in modern software. However, the heterogeneous host-device execution model and expanding software stacks make GPU programs prone to memory-safety and concurrency bugs that evade static analysis. While fuzz-testing, combined with dynamic error checking tools, offers a plausible solution, it remains underutilized for GPUs. In this work, we identify three main obstacles limiting prior GPU fuzzing efforts: (1) kernel-level fuzzing leading to false positives, (2) lack of device-side coverage-guided feedback, and (3) incompatibility between coverage and sanitization tools. We present cuFuzz, the first CUDA-oriented fuzzer that makes GPU fuzzing practical by addressing these obstacles. cuFuzz uses whole program fuzzing to avoid false positives from independently fuzzing device-side kernels. It leverages NVBit to instrument device-side instructions and merges the resultant coverage with compiler-based host coverage. Finally, cuFuzz decouples sanitization from coverage collection by executing host- and device-side sanitizers in separate processes. cuFuzz uncovers 43 previously unknown bugs (19 in commercial libraries) across 14 CUDA programs, including illegal memory accesses, uninitialized reads, and data races. cuFuzz achieves significantly more discovered edges and unique inputs compared to baseline approaches, especially on closed-source targets. Moreover, we quantify the execution time overheads of the different cuFuzz components and add persistent-mode support to improve the overall fuzzing throughput. Our results demonstrate that cuFuzz is an effective and deployable addition to the GPU testing toolbox. cuFuzz is publicly available at https://github.com/NVlabs/cuFuzz/ .
@article{paperbot3809,
title = {Hunting CUDA Bugs at Scale with cuFuzz},
author = {Mohamed Tarek Ibn Ziad and Christos Kozyrakis},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA1},
year = {2026},
doi = {10.1145/3798231}
}