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号