SafeRace:在数据竞争环境下评估和解决WebGPU内存安全问题

《Proceedings of the ACM on Programming Languages》:SafeRace: Assessing and Addressing WebGPU Memory Safety in the Presence of Data Races

【字体: 时间:2025年11月07日 来源:Proceedings of the ACM on Programming Languages

编辑推荐:

  研究指出WebGPU Shading Language存在数据竞争导致的内存安全漏洞,优化器可能合法移除防护。提出SafeRace解决方案,包含程序切片无竞争验证和中间表示数据竞争限制,通过81小时21个编译栈测试验证有效性,并发现苹果和AMD GPU的内存隔离漏洞以及Firefox的WGSL安全错误。

  

摘要

在不可信的执行环境中(如网页浏览器),来自远程来源的代码会经常被执行。为了增强这些环境对攻击的防御能力,所使用的编程语言及其实现必须具备某些安全特性,例如内存安全性。这些特性必须在整个编译过程中得到保持,即使中间语言可能不提供相同的安全保障。如果这些特性未能得到维护,就可能导致严重的安全漏洞。
在这项研究中,我们发现了WebGPU着色语言(WGSL)中的一个规范漏洞:包含数据竞争的代码可能会被编译成中间表示形式,而优化编译器可能会合法地移除其中的内存安全防护机制。为了解决这个问题,我们提出了SafeRace,这是一套针对WGSL执行堆栈的威胁评估和规范修改建议。虽然我们的威胁评估表明该漏洞在当前系统中似乎无法被利用,但它仍然构成了一个“定时炸弹”,尤其是考虑到该领域的编译器正在迅速发展。因此,我们引入了SafeRace内存安全保障(SMSG),即使在存在数据竞争的情况下也能在WGSL执行堆栈中保持内存安全。第一个组件规定参与内存索引操作的程序片段必须是无竞争的,并通过WGSL程序的编译过程来实现这一要求;第二个组件是对中间表示形式的要求,旨在限制数据竞争的影响,使其不会影响到无竞争的程序片段。尽管由于某些数据类型的访问方式存在限制,第一个组件并不能保证适用于所有WGSL程序,但我们证明了现有的语言结构足以在许多重要的WebGPU应用程序中以最小的性能开销实现这一要求。我们通过对21个编译堆栈进行了81小时的模糊测试来验证第二个组件的有效性;测试结果显示只有一台(可能存在错误的)机器出现了违规情况,这表明较低级别的GPU框架可以相对容易地支持这一约束。此外,我们的评估还发现了苹果和AMD GPU中的GPU内存隔离漏洞,以及Firefox预发布版本中对WGSL的错误编译问题。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号