What Is Windows Secondary Logon Service?
The Windows Secondary Logon Service (seclogon) implements the "Run as different user" functionality — the Windows feature that allows a process to run under different credentials than the current user without requiring full logoff. Applications like runas.exe use the Secondary Logon Service to create processes with alternate user tokens. The service runs as SYSTEM and accepts requests from any local user, making its handle management code an attack surface for privilege escalation.
Overview
CVE-2016-0099 is a privilege escalation vulnerability in the Windows Secondary Logon Service that allows a standard user to execute arbitrary code as an administrator (SYSTEM). The vulnerability exists because the Secondary Logon Service fails to properly manage request handles in memory — a handle management error that allows a local attacker to leak a SYSTEM-level handle and use it to execute code with elevated privileges. Patched in MS16-032 (March 8, 2016). Public exploit code was published days after the patch, and the vulnerability was widely adopted by ransomware operators as a reliable LPE component.
Affected Versions
| Windows | Status |
|---|---|
| Windows Vista SP2 | Vulnerable |
| Windows Server 2008 SP2 / R2 SP1 | Vulnerable |
| Windows 7 SP1 | Vulnerable |
| Windows 8.1 | Vulnerable |
| Windows Server 2012 / 2012 R2 | Vulnerable |
| Windows RT 8.1 | Vulnerable |
| Windows 10 (32-bit only) | Vulnerable |
| Windows 10 (64-bit) | Not affected |
| Windows Server 2016 | Not affected |
Fixed in MS16-032 (March 2016). Note: 64-bit Windows 10 and Windows Server 2016 were not affected.
Technical Details
Root Cause: Secondary Logon Service Handle Management
CVE-2016-0099 exploits improper handle management in the Windows Secondary Logon Service. The service runs as SYSTEM and processes requests from user-space applications to create processes under alternate credentials. The vulnerability involves a race condition or handle inheritance error in how the service manages process handles during the logon request processing:
- Request initiation — the attacker's process makes a Secondary Logon Service request
- Handle leak — due to improper handle management, the service leaks a handle to an object with SYSTEM-level access to the requesting process
- Privilege inheritance — the attacker uses the leaked handle to create or inject into a process with SYSTEM privileges
- SYSTEM access — arbitrary code execution at SYSTEM privilege level
The CVSS PR:L (privileges required: low) reflects that any standard user (a local account, domain user, or even service account) can trigger the vulnerability — no administrator access is needed to initiate the exploit.
Ransomware Exploitation Pattern
Ransomware operators adopted CVE-2016-0099 as a reliable LPE component in 2016:
- Initial access — phishing email or exploit kit delivers ransomware dropper running as a standard user
- LPE via CVE-2016-0099 — escalate to SYSTEM
- Maximum impact — with SYSTEM, access all files (including system-protected ones), stop backup and security services, delete Volume Shadow Copies, and encrypt all drives
Attack Characteristics
| Attribute | Detail |
|---|---|
| Attack Vector | Local — standard user account |
| Privileges Required | Low (standard user) |
| User Interaction | None required |
| Impact | SYSTEM-level privilege escalation |
| Ransomware | Confirmed widespread use |
| Exploit Availability | Public PoC within days of patch |
Discovery
Reported to Microsoft and patched in MS16-032 (March 2016 Patch Tuesday). Public exploit code was published approximately March 21, 2016.
Exploitation Context
- Ransomware standard component: CVE-2016-0099 became a standard component in ransomware toolkits in 2016; reliable, public exploit code and broad Windows version coverage (Vista through Windows 10 32-bit) made it a preferred LPE for automated ransomware campaigns
- No user interaction required: The
UI:N(no user interaction) CVSS component makes CVE-2016-0099 particularly valuable for automated post-exploitation — once a dropper runs in user context, the LPE can be triggered programmatically without any user clicking or interaction - Long exploitation tail: CISA's March 2022 KEV addition — six years after the patch — reflects continued exploitation against unpatched systems; organizations running Windows 7 or Server 2008 past their January 2020 EOL date remained permanently exposed
- CISA KEV (2022): Added March 2022
Remediation
-
Apply MS16-032 (March 2016). Any Windows system current with Windows Update after March 2016 includes this fix.
-
Upgrade end-of-life Windows — Windows 7 and Server 2008 are past end-of-life and cannot receive security updates. Upgrade to Windows 10/11 or Server 2019/2022.
-
Disable Secondary Logon Service if unused — if the "Run as different user" feature is not needed, the Secondary Logon Service (seclogon) can be disabled via services.msc or Group Policy.
-
Endpoint protection for ransomware indicators — deploy behavioral detection for ransomware patterns: Volume Shadow Copy deletion (
vssadmin delete shadows), mass file encryption, and privilege escalation sequences from user-context processes. -
Least privilege — ensure processes that handle untrusted input (browsers, email clients, office applications) run as limited users rather than as local administrators or privileged service accounts.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2016-0099 |
| Vendor / Product | Microsoft — Windows |
| NVD Published | 2016-03-09 |
| NVD Last Modified | 2025-10-22 |
| CVSS 3.1 Score | 7.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Severity | HIGH |
| CWE | CWE-120 — Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') find similar ↗ |
| CISA KEV Added | 2022-03-03 |
| CISA KEV Deadline | 2022-03-24 |
| Known Ransomware Use | ⚠️ Yes |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2016-03-08 | Microsoft Security Bulletin MS16-032 released; CVE-2016-0099 patched (March 2016 Patch Tuesday) |
| 2016-03-09 | CVE-2016-0099 published by NVD |
| 2016-03-21 | Public exploit code published demonstrating CVE-2016-0099 exploitation |
| 2022-03-03 | Added to CISA Known Exploited Vulnerabilities catalog |
| 2022-03-24 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2016-0099 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |
| Microsoft Security Bulletin MS16-032 — Security Update for Secondary Logon to Address Elevation of Privilege | Vendor Advisory |