Security Bulletin

Microsoft Security Bulletin MS03-013 - Important

Buffer Overrun in Windows Kernel Message Handling could Lead to Elevated Privileges (811493)

Published: April 16, 2003 | Updated: August 25, 2003

Version: 2.1

Originally posted: April 16, 2003
Updated: August 25, 2003

Summary

Who should read this bulletin:  Administrators of Microsoft® Windows NT® 4.0, Windows® 2000 and Windows® XP systems.

Impact of vulnerability:  Local Elevation of Privilege

Maximum Severity Rating:  Important

Recommendation:  Customers should install the patch at the earliest opportunity.

Affected Software:

  • Microsoft Windows NT 4.0
  • Microsoft Windows NT 4.0 Server, Terminal Server Edition
  • Microsoft Windows 2000
  • Microsoft Windows XP

Non Affected Software:

  • Windows Server 2003

End User Bulletin:  An end user version of this bulletin is available at: https:.

General Information

Technical details

Technical description:

Microsoft re-issued this bulletin on May 28, 2003 to advise on the availability of an updated Windows XP Service Pack 1 patch. This revised patch corrects the performance issues that some customers experienced with the original Windows XP Service Pack 1 patch.

Microsoft originally issued this bulletin on April 16, 2003. Subsequent to that date, Microsoft received reports of performance problems with the patch from some Windows XP Service Pack 1 customers. This original Windows XP Service Pack 1 patch did address the security vulnerability discussed in this security bulletin. Microsoft investigated this performance issue and confirmed that there could be performance problems when the original patch was applied to Windows XP Service Pack 1 systems. Microsoft has published a Knowledge Base article, 819634, that describes the known circumstances that can cause the performance problems to manifest themselves with the original patch. Microsoft has subsequentially re-issued the Windows XP Service Pack 1 patch to correct the performance problems. This revised patch can be downloaded from the locations described later in this bulletin.

The Windows kernel is the core of the operating system. It provides system level services such as device and memory management, allocates processor time to processes and manages error handling. There is a flaw in the way the kernel passes error messages to a debugger. A vulnerability results because an attacker could write a program to exploit this flaw and run code of their choice. An attacker could exploit this vulnerability to take any action on the system including deleting data, adding accounts with administrative access, or reconfiguring the system.

For an attack to be successful, an attacker would need to be able to logon interactively to the system, either at the console or through a terminal session. Also, a successful attack would require the introduction of code in order to exploit this vulnerability. Because best practices recommends restricting the ability to logon interactively on servers, this issue most directly affects client systems and terminal servers.

Mitigating factors:

  • A successful attack requires the ability to logon interactively to the target machine, either directly at the console or through a terminal session.
  • Properly secured servers would be at little risk from this vulnerability. Standard best practices recommend only allowing trusted administrators to log onto such systems interactively; without such privileges, an attacker could not exploit the vulnerability.

Severity Rating:

Windows NT 4.0 Important
Windows NT 4.0, Terminal Server Edition Important
Windows 2000 Important
Windows XP Important

The above assessment is based on the types of systems affected by the vulnerability, their typical deployment patterns, and the effect that exploiting the vulnerability would have on them.

Vulnerability identifier: CAN-2003-0112

Tested Versions:

Microsoft tested Windows NT4, Windows 2000 and Windows XP to assess whether they are affected by these vulnerabilities. Previous versions are no longer supported, and may or may not be affected by these vulnerabilities.

Frequently asked questions

Why has Microsoft reissued this bulletin?
Subsequent to the release of this bulletin and the associated patches, a performance related problem was identified with the Windows XP Service Pack 1 version of the patch. This problem is unrelated to the security vulnerability discussed in this bulletin, however the problem has caused some customers to notice performance degradation on Windows XP SP1 systems after applying the patch. Microsoft has corrected this problem and re-issued this bulletin on May 28, 2003 to advise on the availability of a revised patch for Windows XP Service Pack 1.

What's the scope of the vulnerability?
This is a privilege elevation vulnerability. An attacker who has the ability to interactively log on to a system and run code of their choice could seek to exploit this vulnerability and run code of their choice with higher privileges. This could allow an attacker to carry out any action on the system including creating administrative accounts or modifying or deleting data. Because a successful attack would require the ability for the attacker to logon interactively and run a program, the systems most likely to be affected by this vulnerability are client systems and terminal servers, which regularly allow end-users access to the system directly. Servers such as mail servers, database servers, application servers and file servers are normally configured to restrict the ability of users to log on interactively and therefore are less likely to be affected by this vulnerability.

What causes the vulnerability?
The vulnerability results because of an unchecked buffer used by the Windows kernel for passing error messages to a debugger.

What is the Windows Kernel?
The Windows kernel is the core of the Windows operating system. It provides basic services, such as memory and device management, which all other applications depend upon.

What is a debugger?
A debugger is a software program that provides a way for system administrators and developers to troubleshoot programs running on Windows by interrogating the code that is running on the system directly. A debugger works by "attaching" to a particular process and then listening for error messages from that process. When an error message is detected, the debugger then displays the error message to allow analysis. The kernel manages the passage of messages to and from a debugger. Windows NT, Windows 2000 and Windows XP include a debugger.

What's wrong with the way the Kernel handles debug messages in Windows?
There is a flaw in the Windows kernel caused by a difference in the permitted size of an outgoing error message, and the size of the buffer that can receive that error message. This means that if an overly large message is passed between the kernel and the debugger, the buffer can be caused to overflow. The flaw is in the Windows kernel and how it passes messages to the debugger, and not in the debugger itself.

What could this vulnerability enable an attacker to do?
An attacker with sufficient rights to logon interactively could use this vulnerability to run code of their choice. For example, the attacker could execute code that could allow adding accounts with administrative privileges, deleting critical system files, or changing security settings. It is important to note that an attacker would need to be able to logon interactively to the system. This vulnerability could not be exploited by a remote or an anonymous user.

How could an attacker exploit this vulnerability?
An attacker could seek to exploit this vulnerability by writing a program that would send a number of specially malformed debugger messages to and from the Windows kernel in such a way as to overflow the affected buffer. This could allow the attacker to run code of their choice, which could be used to elevate privilege. For an attack to be successful, the attacker would need to be able to logon interactively and to introduce hostile code to the system. Best practices suggest that users' ability to logon and load programs should be limited in accordance with the rule of least privilege, which would mitigate the chances for a successful attack.

What does the patch do?
The patch addresses the vulnerability by correctly handling information sent from the Windows kernel to the debugger.

In the Additional Information section below you state that the Windows 2000 patch supercedes the Windows 2000 Patch for MS03-007. Does this patch correct the problem discussed in the Caveats section of MS03-007?
Yes - the problem with MS03-007 was caused by a dependent file not being present in the patch. This file dependency only manifested itself under very specific circumstances - the system needed to be running Windows 2000 Service Pack 2 and also have had one of a small number of non-security hotfixes installed - which had to have been obtained from Microsoft Product Support Services. The Windows 2000 patch for this security vulnerability includes the dependent file, and also includes the fix for MS03-007. This means that the patch will install on the systems described above without causing the same issue as the MS03-007 patch.

Patch availability

Download locations for this patch

Additional information about this patch

Installation platforms:

  • The Windows NT 4.0 patch can be installed on systems running Service Pack 6a.
  • The Windows NT 4.0, Terminal Server Edition patch can be installed on systems running Windows NT 4.0, Terminal Server Edition Service Pack 6.
  • The Windows 2000 patch can be installed on systems running Windows 2000 Service Pack 2 or Service Pack 3.
  • The patch for Windows XP can be installed on systems running Windows XP Gold or Service Pack 1.

Inclusion in future service packs:

The fix for this issue will be included in Windows 2000 Service Pack 4 and Windows XP Service Pack 2.

Reboot needed: Yes

Patch can be uninstalled: Yes

Superseded patches:

  • The Windows 2000 patch supersedes the Windows 2000 patch discussed in Microsoft Security Bulletin MS03-007.
  • The Windows NT 4.0 and Windows XP patches do not supersede any other patches.

Verifying patch installation:

  • Windows NT 4.0:

    To verify that the patch has been installed on the machine, confirm that all files listed in the file manifest in Knowledge Base article 811493 are present on the system.

  • Windows NT 4.0 Terminal Server Edition:

    To verify that the patch has been installed on the machine, confirm that all files listed in the file manifest in Knowledge Base article 811493 are present on the system.

  • Windows 2000:

    To verify that the patch has been installed on the machine, confirm that the following registry key has been created on the machine: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q811493.

    To verify the individual files, use the date/time and version information provided in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q811493\Filelist.

  • Windows XP:

    • If installed on Windows XP Gold:

      To verify that the patch has been installed, confirm that the following registry key has been created on the machine: HKLM\Software\Microsoft\Updates\Windows XP\SP1\Q811493.

      To verify the individual files, use the date/time and version information provided in the following registry key: HKLM\Software\Microsoft\Updates\Windows XP\SP1\Q811493\Filelist.

    • If installed on Windows XP Service Pack 1:

      To verify that the patch has been installed, confirm that the following registry key has been created on the machine: HKLM\Software\Microsoft\Updates\Windows XP\SP2\Q811493.

      To verify the individual files, use the date/time and version information provided in the following registry key: HKLM\Software\Microsoft\Updates\Windows XP\SP2\Q811493\Filelist.

Caveats:

None.

Localization:

Localized versions of this patch are available at the locations discussed in "Patch Availability".

Obtaining other security patches:

Patches for other security issues are available from the following locations:

  • Security patches are available from the Microsoft Download Center, and can be most easily found by doing a keyword search for "security_patch".
  • Patches for consumer platforms are available from the WindowsUpdate web site

Other information:

Acknowledgments

Microsoft thanks Oded Horovitz of Entercept™ Security Technologies for reporting this issue to us and working with us to protect customers.

Support:

Security Resources: The Microsoft TechNet Security Web Site provides additional information about security in Microsoft products.

Disclaimer:

The information provided in the Microsoft Knowledge Base is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.

Revisions:

  • V1.0 April 16, 2003: Bulletin Created.
  • V1.1 April 17, 2003: Included correct patch supercedence information for Windows 2000.
  • V1.2 April 23, 2003: Added information regarding performance related issues with Windows XP SP1 patch
  • V1.3 April 23, 2003: Added link to KB article that discusses performance related issues with Windows XP SP1 patch
  • V2.0 May 28, 2003: Re-issued to advise of availability of revised Windows XP SP1 patch to correct performance issues
  • V2.1 August 25, 2003: Corrected duplicate version numbers

Built at 2014-04-18T13:49:36Z-07:00 </https:>