德國CISPA與比利時KU Leuven團隊在資安學術研討會USENIX Security 2026 發表研究 ,實測SiFive P550與T-Head玄鐵C910、C920商用RISC-V處理器,確認也會受到多種Spectre攻擊影響。研究人員也在C910上完成讀取Linux核心記憶體的攻擊示範,顯示RISC-V進入高效能亂序執行設計後,也面臨與高階x86及Arm處理器相同類型的推測執行安全問題。
Spectre是2018年曝光的推測執行攻擊,利用處理器為提高效能而先猜再執行的機制。即使猜錯後撤銷執行結果,部分操作仍可能在快取等硬體資源留下痕跡,攻擊者可藉此推測原本無權讀取的資料。
研究團隊測試13種攻擊情境,其中12種在P550與C910/C920兩種處理器設計上都能成功,涵蓋利用條件分支、間接跳躍、函式返回預測及記憶體讀寫相依性判斷等主要Spectre攻擊方式。不過,分支目標緩衝區(Branch Target Buffer,BTB)相關攻擊是在啟用BTB的狀態下測試,C910與P550預設停用BTB,C920則預設啟用。
攻擊前提是攻擊者已能在目標機器執行程式,研究人員進一步利用Linux核心的BPF(Berkeley Packet Filter)功能,在C910建立任意核心記憶體讀取能力,測得中位洩漏速度為每秒338位元組。完整攻擊示範是在特定Linux版本與BPF設定下完成,部分攻擊也需要特定的處理器分支預測功能,因此無法判定所有RISC-V系統在預設狀態下都能直接以相同方式遭到攻擊。
研究也發現RISC-V軟體防護尚未跟上硬體發展,Linux的barrier_nospec()推測執行屏障(Barrier)在RISC-V上會編譯成no-op,不會執行實際防護,而BPF JIT編譯器遇到驗證器插入的BPF_NOSPEC屏障時,也不會產生對應的RISC-V指令,使原先預期存在的防護失效。
另一個問題來自RISC-V指令集本身。目前RISC-V沒有一個由指令集明確保證可停止推測執行的專用指令,研究團隊測試現有指令後,也發現不同處理器能有效阻止推測執行的方法並不一致,因此作業系統難以採用一套通用防護方式。
研究團隊已針對Linux核心提出5項修補,其中使用者空間記憶體存取的指標遮罩、系統呼叫表索引及KVM索引遮罩3項已併入Linux主線,而BPF推測執行屏障與futex指標遮罩修補,在論文完成時仍在審查。