CVE-2020-14979 Overview
CVE-2020-14979 is a local privilege escalation vulnerability affecting the WinRing0.sys and WinRing0x64.sys drivers (version 1.2.0) bundled with EVGA Precision X1 through version 1.0.6. The vulnerable drivers allow local users, including low integrity processes, to read and write to arbitrary memory locations. This critical flaw enables any authenticated user to gain NT AUTHORITY\SYSTEM privileges by mapping \Device\PhysicalMemory into the calling process.
Critical Impact
Local attackers can escalate privileges to SYSTEM level, gaining complete control over affected Windows systems through arbitrary physical memory access.
Affected Products
- EVGA Precision X1 through version 1.0.6
- WinRing0 driver version 1.2.0 (WinRing0.sys)
- WinRing0x64 driver version 1.2.0 (WinRing0x64.sys)
Discovery Timeline
- August 11, 2020 - CVE-2020-14979 published to NVD
- November 21, 2024 - Last updated in NVD database
Technical Details for CVE-2020-14979
Vulnerability Analysis
This vulnerability represents a classic case of insecure kernel driver design where privileged hardware access is exposed to unprivileged processes. The WinRing0 driver, a third-party component commonly used by hardware monitoring and overclocking software, provides direct access to physical memory through \Device\PhysicalMemory. While this functionality is intended for legitimate hardware interaction purposes such as reading hardware sensors and modifying GPU settings, the driver fails to implement proper access controls.
The lack of authentication or authorization checks means that any local user—including processes running at low integrity levels—can leverage these driver capabilities. This is particularly dangerous because low integrity processes are typically sandboxed applications such as web browsers, making this vulnerability exploitable even from compromised sandboxed environments.
Root Cause
The root cause of this vulnerability lies in the WinRing0 driver's failure to implement proper access control mechanisms. The driver exposes IOCTL handlers that allow arbitrary physical memory read/write operations without verifying the caller's privilege level or integrity. This architectural flaw violates the principle of least privilege and creates a direct path from user-mode code to kernel-level memory manipulation.
The driver does not validate that requests to map \Device\PhysicalMemory originate from trusted, high-integrity processes. As a result, even sandboxed or low-privileged applications can interact with the driver and perform privileged operations that should be restricted to SYSTEM-level processes.
Attack Vector
The attack vector requires local access to the system where EVGA Precision X1 is installed. An attacker with any level of local access can exploit this vulnerability through the following mechanism:
- The attacker opens a handle to the WinRing0 driver device
- Using the driver's exposed IOCTL interfaces, the attacker requests mapping of \Device\PhysicalMemory into their process address space
- With direct access to physical memory, the attacker can modify kernel structures, inject code, or manipulate security tokens
- The attacker elevates their process to NT AUTHORITY\SYSTEM privileges
For detailed technical analysis of the exploitation methodology, see the Specter Ops CVE-2020-14979 Analysis.
Detection Methods for CVE-2020-14979
Indicators of Compromise
- Presence of WinRing0.sys or WinRing0x64.sys drivers loaded on the system
- Unusual processes accessing \Device\PhysicalMemory device object
- Low integrity processes communicating with WinRing0 driver via IOCTL calls
- Unexpected privilege escalation events from standard user accounts
- Suspicious token manipulation activities in security event logs
Detection Strategies
- Monitor for driver load events involving WinRing0.sys or WinRing0x64.sys via Windows ETW or Sysmon
- Implement behavioral detection for processes mapping physical memory sections
- Alert on low integrity processes opening handles to known vulnerable drivers
- Use endpoint detection to identify privilege escalation patterns from unprivileged processes
Monitoring Recommendations
- Enable Windows Security Event logging for process creation (Event ID 4688) with command line auditing
- Deploy Sysmon to capture driver load events (Event ID 6) and process access events (Event ID 10)
- Monitor for anomalous SYSTEM token acquisition by non-administrative users
- Track file hash indicators for vulnerable WinRing0 driver versions
How to Mitigate CVE-2020-14979
Immediate Actions Required
- Update EVGA Precision X1 to a version newer than 1.0.6 that includes patched WinRing0 drivers
- Remove or disable the vulnerable WinRing0.sys and WinRing0x64.sys drivers if the software is not required
- Implement application whitelisting to prevent unauthorized driver loading
- Restrict local user access on systems where EVGA Precision X1 must remain installed
- Consider removing EVGA Precision X1 entirely on sensitive systems until patched versions are confirmed
Patch Information
EVGA has released updated versions of Precision X1 that address this vulnerability. Users should download the latest version from the EVGA PrecisionX1 Official Page and verify that the bundled WinRing0 drivers have been updated beyond version 1.2.0.
Workarounds
- Manually remove or rename the WinRing0.sys and WinRing0x64.sys driver files to prevent loading
- Use Windows Defender Application Control (WDAC) or AppLocker to block loading of the vulnerable driver hashes
- Implement strict least-privilege policies to limit the impact of potential exploitation
- Deploy endpoint protection solutions capable of detecting and blocking driver-based privilege escalation attempts
# Disable vulnerable driver using sc command
sc stop WinRing0_1_2_0
sc config WinRing0_1_2_0 start= disabled
# Alternatively, block driver loading via registry
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WinRing0_1_2_0" /v Start /t REG_DWORD /d 4 /f
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


