Google Project Zero:用内存追踪定位竞态条件
Testing race conditions with mem access tracing and stack-based delay injection

竞态条件因其依赖线程执行的微妙交错而极难复现和测试。我开发了名为 MAccConc 的工具,利用 KCOV 和 ASAN 追踪内存访问,并通过基于堆栈的延迟注入技术强制特定的执行顺序。这套方案不仅能自动测试所有可能的 A-B-A 交错情况,还提供终端和图形界面供手动探索。相比传统的手动添加 mdelay() 或使用 DTrace,该方法能更稳定地识别内存访问点,有效解决 Linux 内核中竞态条件的验证与回归测试难题。
许多安全漏洞都是竞态条件,只有当多线程执行以特定的交错方式运行时,负面效应才会显现。