
Trail of Bits本周揭露了一个存在于通用绘图处理器(General-Purpose Graphics Processing Unit,GPGPU)的安全漏洞CVE-2023-4969,该漏洞可用来恢复其它程序于GPU本地端内存所建立的资料,因而将其称为LeftoverLocals漏洞,殃及苹果、 AMD、高通及Imagination的GPU,但Nvidia、英特尔与Arm的GPU产品则不受影响。
GPU原本是用来加速电脑绘图,但其大规模平行能力与高内存带宽,也让它成为现代科学运算、人工智能(AI)与机器学习(ML)应用的标准硬件加速器,一个GPGPU平台则可将CPU内存放至GPU,以执行相关的高阶运算任务。
然而,研究人员发现,有别于CPU框架,许多GPU框架并未充分地隔离记忆体,使得GPU核心有机会观察到在同一台机器上、由另一个GPU核心所写入本地端内存的值。 于是,黑客便有可能藉由诸如OpenCL等可编程界面来存取共享GPU,窃取由其它用户或程序所输入的内存资料,在ML正兴起的时代,可能产生严重的后果。
Trail of Bits利用Listener与Writer程序来阐明LeftoverLocals漏洞,Listener程序负责启动GPU核心读取未初始化的本地端内存,而Writer程序则利用GPU核心于本地端内存写入一个实验性的金丝雀值,它们会重复启动各自的核心,若Listener能够可靠地读取金丝雀值, 便证明该平台含有LeftoverLocals漏洞,并建议GPU供应商可借由在呼叫核心之间清除本地端内存,来对抗LeftoverLocals漏洞。

图片来源_Trail of Bits
Trail of Bits总计测试了7家GPU供应商的11台设备,并在苹果、AMD与高通的装置上检测到LeftoverLocals的存在,并表示内存外泄数据的容量取决于GPU的大小,愈大的GPU含有愈多的内存即可能外泄更多数据,例如在AMD Radeon RX 7900 XT上可在每个核心中恢复5MB的数据。
而受到LeftoverLocals漏洞波及的设备涵盖了苹果的iPhone 12 Pro(A14)、第三代iPad Air(A12)、采用M2的MacBook Air及采用高通Snapdragon处理器的HTC 1+等。 至于Trail of Bits并没有在Imagination装置上侦测到LeftoverLocals,是由Google在不同的Imagination装置上发现的。
Trail of Bits是在去年9月向CERT/CC 提报LeftoverLocals漏洞,并于本周发表。