暫存器檔案資料取樣 (RFDS)¶
暫存器檔案資料取樣 (RFDS) 是一種微架構漏洞,僅影響 Intel Atom 部件(也稱為 E 核)。RFDS 可能允許惡意行為者推斷之前在浮點暫存器、向量暫存器或整數暫存器中使用過的資料值。RFDS 不提供選擇推斷哪些資料的能力。CVE-2023-28746 已分配給 RFDS。
受影響的處理器¶
以下是受影響的 Intel 處理器列表 [1]
通用名稱
家族_型號
ATOM_GOLDMONT
06_5CH
ATOM_GOLDMONT_D
06_5FH
ATOM_GOLDMONT_PLUS
06_7AH
ATOM_TREMONT_D
06_86H
ATOM_TREMONT
06_96H
ALDERLAKE
06_97H
ALDERLAKE_L
06_9AH
ATOM_TREMONT_L
06_9CH
RAPTORLAKE
06_B7H
RAPTORLAKE_P
06_BAH
ATOM_GRACEMONT
06_BEH
RAPTORLAKE_S
06_BFH
緩解措施¶
Intel 釋出了微碼更新,使軟體能夠使用 VERW 指令清除敏感資訊。與 MDS 類似,RFDS 也採用相同的緩解策略,強制 CPU 在攻擊者提取秘密之前清除受影響的緩衝區。這是透過將本來未使用且已過時的 VERW 指令與微碼更新結合使用來實現的。微碼在執行 VERW 指令時清除受影響的 CPU 緩衝區。
緩解點¶
VERW 在核心返回使用者空間之前以及 KVM 進入虛擬機器之前執行。受影響的核心都不支援 SMT,因此在 C 狀態轉換時不需要 VERW。
IA32_ARCH_CAPABILITIES 中的新位¶
較新的處理器以及現有受影響處理器的微碼更新已向 IA32_ARCH_CAPABILITIES MSR 添加了新位。這些位可用於列舉漏洞和緩解能力
位 27 - RFDS_NO - 設定時,處理器不受 RFDS 影響。
位 28 - RFDS_CLEAR - 設定時,處理器受 RFDS 影響,並具有在執行 VERW 時清除受影響緩衝區的微碼。
核心命令列上的緩解控制¶
核心命令列允許在啟動時透過引數“reg_file_data_sampling=”控制 RFDS 緩解。有效引數為
開啟
如果 CPU 易受攻擊,則啟用緩解;在退出使用者空間和進入虛擬機器之前清除 CPU 緩衝區。
關閉
停用緩解。
緩解預設值由 CONFIG_MITIGATION_RFDS 選擇。
緩解狀態資訊¶
Linux 核心提供了一個 sysfs 介面,用於列舉系統當前的漏洞狀態:系統是否易受攻擊,以及哪些緩解措施處於活動狀態。相關的 sysfs 檔案是
/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling
此檔案中可能的值為
“不受影響”
處理器不受漏洞影響
“易受攻擊”
處理器易受攻擊,但未啟用緩解措施
“易受攻擊:無微碼”
處理器易受攻擊但微碼未更新。
“緩解:清除暫存器檔案”
處理器易受攻擊且已啟用 CPU 緩衝區清除緩解措施。