● High · CVSS 7.8 ⚠ ACTIVELY EXPLOITED — CISA KEV

How to Fix CVE-2016-0167: Microsoft Win32k Privilege Escalation Vulnerability

By the Sai Kiran Pandrala · Reviewed and edited by Sai Kiran Pandrala, Editor

⚡ At a glance
SeverityCVSS 7.8, High
Actively exploited?Yes, listed in CISA KEV (added 2021-11-03)
AffectedWin32k.sys kernel-mode driver in Windows Vista SP2, Server 2008 SP2/R2 SP1, Windows 7 SP1, Windows 8.1, Server 2012 Gold/R2, RT 8.1, and Windows 10 Gold/1511
Fixed inMicrosoft security update MS16-039 (April 2016 Patch Tuesday)
Type (CWE)Local elevation of privilege (Win32k); CWE not assigned in the CVE record

Exploitation status

CVE-2016-0167 is actively exploited in the wild. CISA added it to the Known Exploited Vulnerabilities (KEV) catalog on as “Microsoft Win32k Privilege Escalation Vulnerability”, which makes patching mandatory for U.S. federal agencies under Binding Operational Directive 22-01. Federal agencies were required to remediate it by . Microsoft shipped the fix in MS16-039 as part of the April 2016 Patch Tuesday after the Win32k flaw was found being exploited as a zero-day local privilege-escalation bug in targeted attacks. If you run an affected system, treat this as an emergency change, not a scheduled one.

Public exploit availability: this bug was exploited in the wild before the patch shipped, and its place on the CISA KEV catalog confirms working attack code is in active use. Treat weaponization as certain and patch on an emergency timeline.

Authoritative references:

⚠️ Patch immediately. CVE-2016-0167 is in CISA's Known Exploited Vulnerabilities catalog (added 2021-11-03). Federal agencies had until 2022-05-03 to remediate.

What is CVE-2016-0167?

CVE-2016-0167 is a local elevation-of-privilege flaw in win32k.sys, the Windows kernel-mode driver that handles the graphics and windowing subsystem (GDI, window manager, USER objects). A local, low-privileged user runs a crafted application that abuses how the driver validates or tracks kernel objects, and that application ends up executing code in kernel context. The result is a jump from a normal user account to full SYSTEM rights on the box.

Microsoft labelled it the "Win32k Elevation of Privilege Vulnerability." It is a distinct bug from the sibling Win32k issues fixed in the same patch round, CVE-2016-0143 and CVE-2016-0165: all three landed in the April 2016 cumulative kernel-mode driver update but are tracked separately. The affected surface spans Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8.1, Windows Server 2012 Gold and R2, Windows RT 8.1, and Windows 10 Gold and 1511.

This is elevation of privilege, not remote code execution. The CVSS 3.1 vector is AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H (7.8, High): the attacker needs local access and some user interaction to launch the malicious app, but no prior privileges. Win32k bugs like this one are the classic second stage of a real-world intrusion, a phishing payload or browser exploit lands as a normal user, then this flaw is chained in to seize SYSTEM and disable defenses. The CVE record assigns no specific CWE ("not enough information"), but functionally it sits in the privilege-management / improper-object-handling family.

Am I affected?

You are exposed if the host is running any of the listed Windows versions and has not received the April 2016 (or any later) security rollup. Because the fix shipped in MS16-039, the cleanest check is whether the corresponding KB for your OS is installed. Run this in an elevated PowerShell prompt:

# Show OS version and the most recent installed hotfixes
[System.Environment]::OSVersion.Version
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20 HotFixID, InstalledOn

# MS16-039 KBs by OS (check for yours or any newer cumulative update):
#   Windows 10 1511 ........ KB3147458
#   Windows 10 Gold ........ KB3147461
#   Windows 8.1 / 2012 R2 .. KB3147460  (security-only) / KB3147461 (rollup)
#   Windows 7 SP1 / 2008 R2  KB3147071  (security-only) / KB3148522 (rollup)
#   Server 2012 ............ KB3147460
#   Vista SP2 / 2008 SP2 ... KB3147461 family
Get-HotFix -Id KB3147071, KB3147458, KB3147460, KB3147461 -ErrorAction SilentlyContinue

If none of the MS16-039 KBs (or a newer cumulative/monthly rollup that supersedes them) appear, the machine is vulnerable. Modern Windows 7/8.1/Server builds receive these through later monthly rollups, so a fully patched system is already covered. this CVE only matters on hosts frozen at a pre-April-2016 patch level.

How to fix CVE-2016-0167

The fix is Microsoft security update MS16-039. There is no third-party package, no apt/dnf package, and no separate installer to download for the driver itself, the patch ships as a standard Windows Update for the OS. Apply the cumulative/monthly rollup for your Windows version (any rollup from April 2016 onward includes this fix).

Option 1: Windows Update (simplest)

On a single machine, open Settings or Control Panel and install all pending updates, then reboot. On Windows 7/Server 2008 R2 use Control Panel → Windows Update; on Windows 8.1/10 use Settings → Update & Security. Reboot is required because the patched win32k.sys is in use and is only swapped in at boot.

Option 2, Drive the update from PowerShell

# Run as Administrator. Uses the PSWindowsUpdate module (Install-Module PSWindowsUpdate).
Import-Module PSWindowsUpdate

# See what is pending
Get-WindowsUpdate

# Install all security updates and reboot automatically when done
Install-WindowsUpdate -AcceptAll -Install -AutoReboot

Option 3. Install the specific KB offline (.msu)

For air-gapped or WSUS-managed fleets, download the matching update for your OS from the Microsoft Update Catalog (catalog.update.microsoft.com, search "MS16-039" or the KB number from the table above) and apply the .msu with the Windows Update Standalone Installer:

# Run as Administrator. Substitute the .msu that matches the host's OS/architecture.
wusa.exe C:\Patches\windows8.1-kb3147460-x64.msu /quiet /norestart

# Then reboot to load the patched win32k.sys
Restart-Computer -Force

Verify the fix

# After reboot, confirm the MS16-039 KB (or a superseding rollup) is present
Get-HotFix -Id KB3147071, KB3147458, KB3147460, KB3147461 -ErrorAction SilentlyContinue

# Optional: confirm the patched win32k.sys file version (April 2016 build or newer)
(Get-Item "$env:SystemRoot\System32\win32k.sys").VersionInfo.FileVersion

If Get-HotFix returns the KB and the machine has rebooted, the vulnerable driver has been replaced. If your environment has moved on to later monthly rollups, those supersede MS16-039 and the older KB IDs may not appear individually, that is expected and still patched.

If you can't patch immediately

There is no official Microsoft workaround for CVE-2016-0167: the security bulletin lists none, and patching is the only documented fix. Win32k runs inside every interactive Windows session, so you cannot simply firewall it off or disable the component. If you genuinely cannot deploy MS16-039 on an affected host yet, reduce the blast radius with these measures:

Treat all of the above as stopgaps. The only real remediation is installing the update and rebooting.

Frequently asked questions

Is CVE-2016-0167 being actively exploited?

Yes. It was exploited as a zero-day before the patch, and CISA added it to the Known Exploited Vulnerabilities catalog on 2021-11-03. In-the-wild exploitation is confirmed, which is why the fix should be treated as an emergency change.

Is this remote code execution?

No. CVE-2016-0167 is a local elevation-of-privilege flaw in the Win32k kernel-mode driver. An attacker must already be able to run code on the machine as a normal user; this bug then lets them escalate to SYSTEM. It is typically chained behind a separate initial-access exploit.

Which update fixes it, and do I need to reboot?

Microsoft security update MS16-039 (April 2016 Patch Tuesday) fixes it, delivered as the standard kernel-mode driver KB for your Windows version (for example KB3147071 on Windows 7 SP1, KB3147460 on Windows 8.1/Server 2012 R2). Any monthly rollup from April 2016 onward also includes it. A reboot is required because win32k.sys is loaded and only replaced at boot.

My scanner still flags CVE-2016-0167 after patching, why?

Confirm the host actually rebooted, then re-run the scan. Many scanners key off the presence of a specific KB; if a later cumulative rollup superseded MS16-039, the original KB ID may not show up and a banner-only scanner can misreport it. Verify with Get-HotFix and the win32k.sys file version instead.

References


Written by Sai Kiran Pandrala on 2026-05-25. Sourced from the official vendor advisory, the NVD record, and the CISA KEV listing. Always confirm against the vendor advisory before applying changes in production.

Other defects in the same area that deserve attention during this patch cycle:

People also ask

Is CVE-2016-0167 being actively exploited?

Yes. It was exploited as a zero-day before the patch, and CISA added it to the Known Exploited Vulnerabilities catalog on 2021-11-03. In-the-wild exploitation is confirmed, so the fix should be treated as an emergency change.

Is CVE-2016-0167 remote code execution?

No. It is a local elevation-of-privilege flaw in the Win32k kernel-mode driver. An attacker must already be able to run code as a normal user; this bug then lets them escalate to SYSTEM. It is typically chained behind a separate initial-access exploit.

Which update fixes CVE-2016-0167, and do I need to reboot?

Microsoft security update MS16-039 (April 2016 Patch Tuesday) fixes it, delivered as the kernel-mode driver KB for your Windows version (for example KB3147071 on Windows 7 SP1, KB3147460 on Windows 8.1/Server 2012 R2). Any monthly rollup from April 2016 onward also includes it. A reboot is required because win32k.sys is only replaced at boot.

My scanner still flags CVE-2016-0167 after patching. Why?

Confirm the host rebooted, then re-run the scan. If a later cumulative rollup superseded MS16-039, the original KB ID may not show up and a banner-only scanner can misreport it. Verify with Get-HotFix and the win32k.sys file version instead.