如何修復導致 Windows 系統崩潰的 OpenVPN 驅動程式漏洞

如何修復導致 Windows 系統崩潰的 OpenVPN 驅動程式漏洞

如果您在 VPN 應用程式中遇到與 OpenVPN 相關的藍色畫面崩潰,那麼您並不孤單。此問題是由於 OpenVPN 驅動程式中存在漏洞,需要從來源進行修補。由於眾多 VPN 供應商整合了 OpenVPN 協議,許多 Windows 用戶都遇到了這個嚴重錯誤。下文將討論如何識別此問題並實施預防措施,以避免嚴重的 PC 崩潰。

了解 Windows 上的 OpenVPN 崩潰

OpenVPN 已成為 VPN 應用程式的熱門選擇。然而,2025 年 6 月,OpenVPN 資料通道卸載 (DCO) 驅動程式中發現了一個嚴重的緩衝區溢位漏洞,該漏洞名為「ovpn-dco-win」。此漏洞會導致藍色畫面死機 (BSoD)。

這起事件並非孤例。 OpenVPN 插件架構中的歷史漏洞經常帶來風險,允許遠端程式碼執行和權限提升。例如,微軟在 2024 年發現了四個嚴重漏洞(包括 CVE-2024-27459 和 CVE-2024-24974),這些漏洞危及 Windows TAP 驅動程序,導致拒絕服務 (DoS) 攻擊。

如果您的VPN設定為隨Windows自動啟動,除非您已更新至最新的OpenVPN用戶端「OpenVPN 2.7_alpha2」或更高版本,否則您可能會遇到這些當機。請確保您的VPN提供者已將這些更新包含在其Windows用戶端中,並優先更新,不要拖延。

OpenVPN 用戶端在啟動期間阻止 Internet 存取。

DCO 驅動程式負責關鍵封包功能,例如加密、解密和路由,這些功能透過將這些任務從用戶空間轉換到 Windows 核心來執行。與 WireGuard 不同,OpenVPN 的 DCO 在核心空間內運行,這些與作業系統的密切互動通常會導致崩潰。

先前的核心級惡意軟體事件凸顯了此類漏洞的複雜性,如 CVE-2025-50054 漏洞所示,其中格式錯誤的資料包會因低階記憶體錯誤而導致崩潰。

如何在 Windows 上識別和停用 OpenVPN 驅動程式

如果您不使用 OpenVPN,請考慮停用其驅動程式。許多 VPN 用戶端會安裝自己的驅動程序,因此請務必確認您的系統上安裝了哪些驅動程式。

首先,開啟檔案總管並導航至「C:\Windows\System32\Drivers」。在這裡,尋找與 OpenVPN 相關的驅動程序,例如 DCO 驅動程式 – “ovpn-dco.sys”。

在 System32 目錄中尋找 OpenVPN 的 DCO 驅動程式。

除了 DCO 驅動程式之外,還要留意敏感的 OpenVPN 驅動程序,例如 TAP-Windows Adapter V9(“tapwindows6.sys”)、Wintun 驅動程序(“wintun.sys”)和命名管道介面(例如,“\\.\pipe\openvpn”)。

您可以在裝置管理員中追蹤這些驅動程式。啟動「執行」命令 (Windows + R),然後輸入devmgmt.msc。然後導覽至「網路介面卡」,找到 OpenVPN 條目,例如 DCO 和 TAP-Windows Adapter V9。

在裝置管理員中查看 OpenVPN 驅動程式。

如果您希望查看系統上所有隱藏的 OpenVPN 驅動程序,請以管理員權限開啟 PowerShell。執行以下命令:

Get-WmiObject Win32_SystemDriver | Where-Object { $_. Name -like "*ovpn*" -or $_. Name -like "*tap*" } | Select-Object Name, State, PathName, StartMode

接下來,考慮完全卸載 OpenVPN 應用程式並手動刪除所有相關驅動程序,因為它們即使在卸載後仍會保留。

如果您使用 NordVPN 或 ExpressVPN 等 VPN 用戶端且不需要 OpenVPN,建議轉換至 WireGuard 作為替代方案。

設定 OpenVPN 驅動程式的存取限制

由於 OpenVPN 與作業系統的廣泛集成,它特別容易受到低階漏洞的影響,這些漏洞可能會導致嚴重問題。為了減輕潛在損害,您可以限制受感染 OpenVPN 驅動程式的存取權限,而無需卸載 VPN 用戶端。

以管理員模式開啟 PowerShell,輸入以下命令:

$driverPath = "C:\Windows\System32\drivers\ovpn-dco.sys" icacls $driverPath /inheritance:r icacls $driverPath /grant:r "SYSTEM:R" "Administrators:R" icacls $driverPath /deny "Everyone:W"

使用 PowerShell 限制 OpenVPN 的 DCO 驅動程式的權限。

上述命令有效地刪除了繼承的權限以防止未經授權的訪問,同時拒絕所有使用者(包括惡意軟體)的寫入訪問權限,從而確保任何驅動程式故障不會危及您的系統。

若要拒絕其他隱藏驅動程式的訪問,請重新執行該命令,同時更新驅動程式路徑以定位 TAP-Windows 適配器 V9“tapwindows6.sys”。

透過命令阻止存取 OpenVPN 中的 TAP Connect。

監控與 OpenVPN 驅動程式關聯的 BSoD 實例

雖然 OpenVPN 會及時發布補丁,但許多用戶在應用程式更新方面卻有所延遲。為了主動管理和預防崩潰,請下載並安裝名為「藍色畫面視圖」的實用程式。

安裝完成後,以管理員模式開啟 PowerShell 並執行下列腳本,確保替換$nirDir為藍色畫面檢視的正確安裝路徑。此腳本會監視最近的崩潰轉儲,以標記任何與 OpenVPN 相關驅動程式相關的內容。

# Set path to your BlueScreenView directory (update if needed) $nirDir = "C:\Tools\BlueScreenView" # ← Change this to your actual path $csvPath = "$nirDir\bsod.csv" # Monitoring loop while ($true) { # Execute BlueScreenView in command-line mode and export to CSV Start-Process -FilePath "$nirDir\BlueScreenView.exe" -ArgumentList "/scomma `"$csvPath`"" -Wait # Import and analyze results $bsods = Import-Csv $csvPath -Header Dumpfile, Timestamp, Reason, Errorcode, Param1, Param2, Param3, Param4, CausedByDriver $recent = $bsods | Where-Object { ($_. Timestamp -as [datetime]) -gt (Get-Date). AddMinutes(-10) -and $_. CausedByDriver -match "ovpn|tap|wintun" } if ($recent) { Write-Warning "⚠️ BSoD caused by OpenVPN driver in the last 10 minutes!" $recent | Format-Table -AutoSize } else { Write-Host "✅ No recent OpenVPN-related BSoDs." } Start-Sleep -Seconds 600 # Delay 10 minutes before checking again }

驗證與 OpenVPN 有關的最近 BSoD 事件。

結果視窗顯示最近是否偵測到與 OpenVPN 相關的 BSoD 事件。

為 OpenVPN 驅動程式實施軟體限制策略

對於使用 Windows Pro 或 Enterprise 版本的用戶,您可以透過本機群組原則編輯器利用軟體限制策略來防止 OpenVPN 驅動程式在未經您同意的情況下運作。

若要存取群組原則編輯器,請在執行命令中輸入「gpedit.msc」。選單導覽如下:電腦設定Windows 設定安全性設定軟體限制策略附加規則

右鍵點選附加規則中的最後一項,然後選擇新路徑規則

在本機群組原則中建立新的路徑規則。

在彈出視窗中,貼上驅動程式的路徑。在本例中,請使用 OpenVPN 的 DCO 驅動程式的路徑。將規則設為「Disallowed」,然後點選「Apply」,再點選「OK」。對每個要限制的其他驅動程式重複此過程。

透過群組原則路徑規則禁止 OpenVPN 驅動程式。

由於 OpenVPN 維護的核心空間驅動程式即使在應用程式卸載後仍會保留,因此這些驅動程式經常導致 Windows 在啟動時崩潰。遵循上述策略,您可以有效地降低這些風險。您是否正在考慮新的 VPN 解決方案?

來源和圖片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *