目前 Linux 解決漏洞的方案是從新設計頁表(KAISER 技術)。以前普通程序和內核程序共用頁表,靠 CPU 來阻止普通程序的越權訪問。補丁的方案是讓內核使用另一個頁表,而普通程序的頁表中只保留一些必要的內核信息(例如調用內核的地址)。這個方案會致使每次普通程序和內核程序之間的切換(例如系統內核調用或者硬件中斷)都須要切換頁表,引發 CPU 的 TLB 緩存刷新。TLB 緩存刷新相對正常指令來講是很是耗時的,所以會下降系統的效率。
KAISER 技術對系統性能的影響通常是 5%,最高可達 30%。一些高級的芯片功能(例如 PCID)能夠支持其餘的修補方式,從而減小性能影響。Linux 已經在 4.14 版本的開發過程當中添加了對 PCID 的支持。
在 Linux 系統中,KAISER 只有在受到影響的 CPU 型號上纔會啓用,所以 AMD 芯片不受影響,且用戶能夠經過手動修改補丁開關的方式關閉 KAISER。
修復進展
Linux 社區的開發者們所以修改了 Linux 的虛擬內存系統,可是代碼註釋被縮減,以隱藏漏洞的詳細信息。
Windows 預計在本週四發佈相關補丁,且補丁已經在去年十一月、十二月的 Windows Insider 版本中發佈給了測試用戶。