Trail of Bits
资安业者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总计测试了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漏洞,并于本周发表。