
1. 摘要
本報告提供了對影響 Windows 版 NVIDIA GPU 顯示驅動程式的漏洞
CVE-2024-0079
的技術分析。此漏洞源於對先前漏洞(
CVE-2023-25516
和
CVE-2023-25517
)的不完全更新,這些漏洞與
nvsvc.log
檔案的符號連結處理有關。儘管已進行更新,但由於存在
Race condition
,低權限用戶仍可能實現任意檔案寫入,從而導致權限提升或拒絕服務。本報告詳細說明了漏洞機理,分析了概念驗證(PoC)方法,並討論了潛在影響和緩解措施。

2. 簡介
NVIDIA GPU 顯示驅動程式包含 NVIDIA 顯示容器服務(
NVDisplay.Container.exe
),該服務會將活動記錄到
C:\ProgramData\NVIDIA Corporation\nvsvc.log
。先前的漏洞(
CVE-2023-25516
/
CVE-2023-25517
)顯示,本地低權限用戶可以將此記錄檔替換為指向敏感系統檔案的
符號連結(Symbolic link)
。當服務寫入記錄時,會無意中覆蓋連結的目標檔案。NVIDIA 發布了更新程式,通過增加檢查來防止服務在
nvsvc.log
為符號連結時寫入該檔案。然而,
CVE-2024-0079
揭示了這個更新並不充分,因為存在
Race condition
。
3. 漏洞細節:Race condition
CVE-2024-0079
的核心問題在於
NVDisplay.Container.exe
服務內的安全檢查與檔案操作之間的時機:
-
初始檢查:
更新後的服務在獲取檔案 Handle 以進行寫入
之前
,會檢查
nvsvc.log
是否存在以及是否為符號連結。 - 競爭窗口(Race Window): 在進行此檢查 之後 但服務實際打開檔案 Handle 並寫入 之前 ,存在一個短暫的機會窗口。
-
攻擊:
以低權限運行的
Threat actor
可以利用這個窗口。他們可以在這個短暫的時間內刪除或重新命名合法的
nvsvc.log
檔案,並快速在其位置創建一個指向目標檔案(例如C:\Windows\System32\drivers\etc\hosts
)的符號連結。 - 結果: 當服務繼續打開並寫入它 認為 是合法記錄檔的檔案(已經通過了檢查)時,它會跟隨新創建的符號連結並寫入攻擊者選擇的目標檔案。
此漏洞允許繞過先前更新程式中實施的預期安全措施。
4. 概念驗證(PoC)腳本分析
根據文章中所述的
Race condition
分析
CVE-2024-0079
的 PoC 攻擊方法如下:
-
目標:
贏得
Race condition
,在檢查和寫入操作之間將
nvsvc.log
替換為符號連結。 -
典型步驟:
-
監控(可選但有幫助):
監控
nvsvc.log
檔案或NVDisplay.Container.exe
程序活動,以預測何時即將進行記錄寫入操作。這有助於定時攻擊。 -
準備:
腳本需要適當的權限來操作
C:\ProgramData\NVIDIA Corporation\
中的檔案(通常對標準用戶開放),並創建符號連結(需要SeCreateSymbolicLinkPrivilege
,通常授予標準用戶,或可通過特定技術實現)。 -
執行循環(Race Attempt):
腳本的核心可能涉及一個循環,該循環非常快速地重複執行以下操作:
-
嘗試刪除或重新命名
C:\ProgramData\NVIDIA Corporation\nvsvc.log
。 -
立即嘗試創建一個名為
nvsvc.log
的符號連結,指向所需的目標檔案(例如使用mklink "C:\ProgramData\NVIDIA Corporation\nvsvc.log" "C:\Windows\System32\drivers\etc\hosts"
-
嘗試刪除或重新命名
- 觸發(可選): 腳本可能嘗試觸發導致 NVIDIA 服務寫入其記錄檔的動作,增加命中競爭窗口的機會。
- 驗證: 檢查目標檔案是否已被記錄資料覆蓋。
-
監控(可選但有幫助):
監控
- 成功因素: 此類 PoC 腳本的成功在很大程度上取決於時機、系統性能以及 NVIDIA 服務寫入記錄的頻率。這是一種概率性攻擊,並非每次嘗試都能成功。腳本旨在最大化在漏洞時間窗口內精確執行刪除/重新命名和連結創建操作的概率。初始覆蓋不需要複雜的 Payload ;服務自身的記錄資料即作為寫入目標檔案的內容。 Threat actor 的後續行動將取決於被覆蓋的檔案。
5. 影響
成功利用此漏洞可能導致:
- 權限提升: 通過覆蓋由更高權限程序執行的關鍵系統檔案或設定檔。
- 拒絕服務(DoS): 覆蓋必要的系統檔案可能導致系統不穩定或無法啟動。
-
資料操縱:
覆蓋資料檔案或設定檔可能擾亂應用程式行為或安全設定(例如,修改
hosts
檔案以重新導向網絡流量)。
具體影響取決於 Threat actor 選擇的目標檔案。
6. 緩解和建議
-
更新 NVIDIA 驅動程式:
主要的緩解措施是安裝更新後的 NVIDIA GPU 顯示驅動程式版本,這些版本通過實施更強健的檢查或檔案處理機制來正確解決
CVE-2024-0079
,使其不受此Race condition的影響。請參閱 NVIDIA 的安全公告以了解受影響的版本和更新的發布。 -
監控:
監控系統中
C:\ProgramData\NVIDIA Corporation\
目錄中的異常檔案操作,特別是針對nvsvc.log
創建符號連結的情況。使用能夠檢測Race condition利用嘗試或可疑檔案系統活動的安全工具。
7. 結論
CVE-2024-0079
凸顯了安全更新漏洞的挑戰,特別是涉及Race condition的漏洞。儘管最初已解決,但更新不充分導致時機攻擊向量(Timing attack vector)持續存在。理解涉及
Race condition
和
symbolic link
操縱的技術機理對於防禦至關重要。管理員應優先安裝最新的 NVIDIA 驅動程式更新,以緩解與此漏洞相關的風險。