CVE-1999-0591
Executive Summary
This report provides a detailed analysis of CVE-1999-0591, a critical vulnerability stemming from inappropriate default access permissions on event logs within Microsoft Windows NT. The vulnerability allows a low-privileged local attacker to read, modify, or clear sensitive security logs, potentially leading to a complete compromise of the system. The primary impacts are threefold: evasion of detection by erasing malicious activity, denial of service by corrupting the event log service, and potential privilege escalation.
The vulnerability is rated with a CVSSv2 score of 7.2, reflecting a local attack vector that can lead to a complete loss of confidentiality, integrity, and availability. However, historical assessments placed its severity at a maximum of 10.0, underscoring its potential for complete system takeover in environments lacking proper segmentation and monitoring.
Given that Windows NT has been End-of-Life for decades, no official patch exists. The only effective remediation is to migrate all systems running this legacy operating system to a modern, supported version of Windows. Short-term mitigation involves manually hardening the Access Control Lists (ACLs) on event log files and associated registry keys.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
The official NVD scoring for this vulnerability is based on CVSSv2, reflecting its age.
- CVSSv2 Score: 7.2 (High)
- Vector:
AV:L/AC:L/Au:N/C:C/I:C/A:C
Breakdown:
- Attack Vector (AV): Local (L): The attacker must have local access to the target system, either physically or through a prior compromise (e.g., a remote shell).
- Access Complexity (AC): Low (L): No special conditions or configuration are required to exploit the vulnerability. An attacker with standard user permissions can leverage built-in tools or simple scripts.
- Authentication (Au): None (N): The attacker does not need to be authenticated at a privileged level; a low-privileged user account is sufficient.
- Confidentiality (C): Complete (C): An attacker can read all data from any event log, including the Security log, which may contain sensitive information about logon attempts, process creation, and administrative actions.
- Integrity (I): Complete (C): The attacker can modify or completely clear event logs, effectively erasing their tracks and blinding security monitoring systems.
- Availability (A): Complete (C): An attacker could corrupt the log files, causing the Event Log service to fail or crash, leading to a system-wide denial of service for logging capabilities.
The originally supplied CVSS score of 10.0, while not aligning with modern calculations, likely reflected the ultimate potential impact in a worst-case scenario: a complete, untraceable system takeover facilitated by the ability to operate without leaving a forensic trail.
Deep Dive & Mechanics
The vulnerability exists within the Discretionary Access Control Lists (DACLs) applied to the event log files and their corresponding configuration in the Windows Registry. In a vulnerable Windows NT system, these permissions were overly permissive.
Key Locations:
- Event Log Files: Located in
%SystemRoot%\System32\config\, with filenames such asAppEvent.Evt,SecEvent.Evt, andSysEvent.Evt. - Registry Keys: Located under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\. Each log (Application, Security, System) has its own subkey that controls configuration, including the path to the log file.
The vulnerability manifested when default permissions granted groups like Everyone or Authenticated Users excessive rights, such as Write or Full Control. An attacker with standard user privileges could leverage these permissions to perform malicious actions using standard Windows APIs (e.g., ClearEventLog(), WriteEventLog()) or command-line tools available at the time.
The attack chain is straightforward:
- An attacker gains low-privileged local access to a Windows NT machine.
- The attacker enumerates permissions on the
.evtfiles and/or registry keys to confirm the vulnerability. - The attacker uses a utility (e.g., the
dumpeltool from the NT Resource Kit or a custom script) to clear the Security event log before performing privilege escalation or other malicious actions. - After completing their objectives, they may clear the logs again, making forensic analysis extremely difficult.
Vulnerable vs. Patched Code
As this is a configuration vulnerability, there is no "vulnerable code." The difference lies in the filesystem permissions. We can illustrate this with hypothetical outputs from the cacls command-line utility used in Windows NT.
Vulnerable Permissions (SecEvent.Evt):
In this scenario, the Everyone group has Full Control, allowing any user to read, write, or delete the log.
C:\WINNT\system32\config> cacls SecEvent.Evt
C:\WINNT\system32\config\SecEvent.Evt BUILTIN\Administrators:(ID)F
NT AUTHORITY\SYSTEM:(ID)F
Everyone:(ID)F
Properly Secured Permissions (SecEvent.Evt):
Here, only Administrators and the SYSTEM account have Full Control. Standard users have no access, which is the correct configuration.
C:\WINNT\system32\config> cacls SecEvent.Evt
C:\WINNT\system32\config\SecEvent.Evt BUILTIN\Administrators:(ID)F
NT AUTHORITY\SYSTEM:(ID)F
Exploitation & Lab Setup
To replicate this vulnerability, an analyst would need a virtualized Windows NT 4.0 environment.
Lab Setup:
- Install Windows NT 4.0 Server or Workstation in a VM (e.g., VirtualBox, VMware).
- Create a standard, non-administrative user account (e.g.,
testuser). - Log in as
testuser.
Exploitation Steps:
- Open a Command Prompt.
- Verify the insecure permissions on the security event log file:
cacls %SystemRoot%\system32\config\SecEvent.Evt - If the permissions are overly permissive (e.g.,
Everyone:F), the system is vulnerable. - Use a tool capable of interacting with the event log service. A common tool from the era was
dumpel.exefrom the Windows NT Resource Kit. The command to clear the security log would be:REM The -c flag clears the specified log. dumpel.exe -l security -c - After executing this command as
testuser, an administrator checking the Security event log would find it empty, with no trace of the user's previous activities. This demonstrates successful exploitation for the purpose of anti-forensics.
Detection Engineering
Detecting the exploitation of this vulnerability focuses on identifying unauthorized attempts to clear or tamper with event logs. The most reliable indicator is the "Audit log was cleared" event (Event ID 1102 in modern Windows, 517 in Windows NT), especially when initiated by an unexpected user account.
The following Sigma rule detects the clearing of the Security Log by any user other than the local SYSTEM account or a member of the domain administrators group, which are typically the only accounts authorized to perform such an action.
title: Unauthorized Security Log Clearing
id: 11a2b3c4-d5e6-f7g8-h9i0-j1k2l3m4n5o6
status: stable
description: Detects when the Windows Security event log is cleared by an account that is not a system or high-privileged administrator account. This is a strong indicator of tampering and evasion.
author: Valters IT Neural Engine
date: 2023/10/27
references:
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0591
logsource:
product: windows
service: security
detection:
selection:
# Event ID 517 in legacy Windows NT/2000
# Event ID 1102 in modern Windows (Server 2008+)
EventID:
- 517
- 1102
filter:
# SubjectUserName/User ends with '$' for computer accounts (SYSTEM)
# Exclude known Domain Admins or Enterprise Admins groups for legitimate administrative actions.
# This may need tuning for your environment.
SubjectUserName|endswith: '$'
# In modern logs, User might be NT AUTHORITY\SYSTEM
User: 'NT AUTHORITY\SYSTEM'
# Example of excluding a privileged group
# SubjectUserSid: 'S-1-5-21-...'
condition: selection and not filter
falsepositives:
- Legitimate log clearing by a local administrator account not captured by the filter.
level: high
tags:
- attack.defense_evasion
- attack.t1070.001
- cve.1999.0591
Remediation & Mitigation
As Windows NT is long past its end-of-life, the only true remediation is complete system migration.
Decommission and Upgrade (Primary Remediation): The most critical action is to decommission any remaining Windows NT systems. They are insecure by design and vulnerable to countless unpatched exploits. Migrate services and applications to a modern, supported operating system like Windows Server 2019/2022.
Manual ACL Hardening (Temporary Mitigation): If immediate decommissioning is not feasible, the permissions must be manually corrected. This is a temporary, high-risk stopgap measure.
- Use the
caclsutility or the GUI to removeEveryone,Authenticated Users, and other non-administrative groups from the ACLs of the.evtfiles located in%SystemRoot%\system32\config\. - Ensure that only the
SYSTEMandAdministratorsgroups haveFull Control. - Perform the same permission audit and hardening on the
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\registry keys.
- Use the
Implement Compensating Controls:
- Network Segmentation: Isolate legacy systems on a restricted network segment with a default-deny firewall policy, allowing only essential communication.
- Enhanced Monitoring: Deploy Host-based Intrusion Detection Systems (HIDS) on these legacy assets to monitor for file integrity changes, unauthorized process execution, and suspicious API calls related to the Event Log service.
- Log Forwarding: Configure the system to forward logs in real-time to a central, hardened Security Information and Event Management (SIEM) solution. This ensures that even if local logs are cleared, a copy exists on a separate system for forensic investigation.
[!] This Threat Intelligence report was automatically generated by Valters IT (valtersit.com) Neural Engine.
{/* [Security Hash: 896DE59217F52B2F6CB4679B] */}
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.