Security Bulletin

Microsoft Security Bulletin MS03-030 - Critical

Unchecked Buffer in DirectX Could Enable System Compromise (819696)

Published: July 23, 2003 | Updated: June 16, 2004

Version: 2.2

Originally posted: July 23, 2003
Updated: June 16, 2004

Summary

Who should read this bulletin: Customers using Microsoft® Windows®

Impact of vulnerability: Allow an attacker to execute code on a user's system

Maximum Severity Rating: Critical

Recommendation: Customers should apply the security patch immediately

Affected Software:

  • Microsoft DirectX® 5.2 on Windows 98
  • Microsoft DirectX 6.1 on Windows 98 SE
  • Microsoft DirectX 7.1 on Windows Millennium Edition
  • Microsoft DirectX 7.0 on Windows 2000
  • Microsoft DirectX 8.0, 8.0a, 8.1, 8.1a, and 8.1b when installed on Windows 98, Windows 98 SE, Windows Millennium Edition or Windows 2000
  • Microsoft DirectX 8.1 on Windows XP or Windows Server 2003
  • Microsoft DirectX 9.0a when installed on Windows 98, Windows 98 SE, Windows Millennium Edition (Windows Me), Windows 2000, Windows XP, or Windows Server 2003
  • Microsoft Windows NT 4.0 with either Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 installed
  • Microsoft Windows NT 4.0, Terminal Server Edition with either Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 installed

An End User version of the bulletin is available at: https:.

General Information

Technical details

Technical description:

Subsequent to the original release of this bulletin, customers requested that we support additional versions of DirectX that were not covered by the original patches. This bulletin has been updated to provide information about a new patch, which is intended for customers using Windows 98, Windows 98 SE, Windows Millennium Edition, or Windows 2000 who have upgraded to Microsoft DirectX 8.0, 8.0a, 8.1, 8.1a, or 8.1b.

DirectX consists of a set of low-level Application Programming Interfaces (APIs) that are used by Windows programs for multimedia support. Within DirectX, the DirectShow technology performs client-side audio and video sourcing, manipulation, and rendering.

There are two buffer overruns with identical effects in the function used by DirectShow to check parameters in a Musical Instrument Digital Interface (MIDI) file. A security vulnerability results because it could be possible for a malicious user to attempt to exploit these flaws and execute code in the security context of the logged-on user.

An attacker could seek to exploit this vulnerability by creating a specially crafted MIDI file designed to exploit this vulnerability and then host it on a Web site or on a network share, or send it by using an HTML-based e-mail. In the case where the file was hosted on a Web site or network share, the user would need to open the specially crafted file. If the file was embedded in a page the vulnerability could be exploited when a user visited the Web page. In the HTML-based e-mail case, the vulnerability could be exploited when a user opened or previewed the HTML-based e-mail. A successful attack could cause DirectShow, or an application making use of DirectShow, to fail. A successful attack could also cause an attacker's code to run on the user's computer in the security context of the user.

Mitigating factors:

  • By default, Internet Explorer on Windows Server 2003 runs in Enhanced Security Configuration. This default configuration of Internet Explorer blocks the e-mail-based vector of this attack because Microsoft Outlook Express running on Windows Server 2003 by default reads e-mail in plain text. If Internet Explorer Enhanced Security Configuration were disabled, the protections put in place that prevent this vulnerability from being exploited would be removed.
  • In the Web-based attack scenario, the attacker would have to host a Web site that contained a Web page used to exploit these vulnerabilities. An attacker would have no way to force users to visit a malicious Web site outside the HTML-based e-mail vector. Instead, the attacker would need to lure them there, typically by getting them to click a link that would take them to the attacker's site.
  • The combination of the above means that on Windows Server 2003 an administrator browsing only to trusted sites should be safe from this vulnerability.
  • Code executed on the system would only run under the privileges of the logged-on user.

Severity Rating:

Microsoft DirectX 9.0a Critical
Microsoft DirectX 9.0a when installed on Windows Server 2003 Important
Microsoft DirectX 8.0, 8.0a, 8.1, 8.1a, and 8.1b, all versions except DirectX 8.1 on Windows Server 2003 Critical
Microsoft DirectX 8.1 on Windows Server 2003 Important
Microsoft DirectX 7.1 on Windows Millennium Edition Critical
Microsoft DirectX 7.0 on Windows 2000 Critical
Microsoft Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 when installed on Windows NT 4.0 Critical
Microsoft Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 when installed on Windows NT 4.0, Terminal Server Edition Critical

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-0346

Tested Versions:

Microsoft tested Microsoft DirectX 9.0a, Microsoft DirectX 8.1, Microsoft DirectX 7.0, Microsoft DirectX 7.0a on Windows Millennium Edition, DirectX 6.1 on Windows 98 SE, DirectX 5.2 on Windows 98, Microsoft Windows NT 4.0 with Windows Media Player 6.4 and Internet Explorer 6 Service Pack 1 installed, Microsoft Windows NT 4.0, Terminal Server Edition with Windows Media Player 6.4 and Internet Explorer 6 Service Pack 1 installed to assess whether they are affected by this vulnerability. Previous versions are no longer supported and may or may not be affected by this vulnerability

Frequently asked questions

Microsoft has issued a new patch for additional DirectX versions. Why?
Subsequent to the original release of this bulletin, customers requested that we support additional versions of DirectX that were not covered by the original patches. Microsoft has updated the bulletin to provide details of these additional versions, which are listed in the "Affected Products" section of this bulletin, and to include download locations, which are listed in the "Patch availability" section of this bulletin.

I have already installed the original patch. Do I need to install the new patch?
No - the original patch is still effective in removing the security vulnerability. The new patch adds support for additional versions of DirectX and does not alter the original patch.

What's the scope of this vulnerability?
This is a buffer overrun vulnerability. An attacker who successfully exploited the vulnerability could, in the worst case, run code of his or her choice on a user's system. The attacker's code would run with the same privileges as the user: any restrictions on the user's ability to change the system would apply to the attacker's code. For example, if the user were prevented from deleting files on the hard disk, the attacker's code would similarly be prevented. Conversely, if a user were using an account with high privileges, such as an administrator's account, the attacker's code would also run with the same high privileges. The vulnerability exists in the component responsible for parsing MIDI files. This function is included in a component of DirectX known as DirectShow.

What is DirectX?
Microsoft DirectX is a software component that contains a set of APIs that provide access to graphics acceleration chips and sound cards and other types of media hardware. These APIs control low-level functions including: graphics acceleration, support for input devices (such as joysticks, keyboards, and mice) and control of sound mixing and sound output. One of the technologies included in DirectX is called DirectShow.

What is DirectShow?
The DirectShow technology included in DirectX performs client-side audio and video sourcing, manipulation and rendering. It supports several common media formats in addition to the affected MIDI file type, including Advanced Systems Format (ASF), Motion Picture Experts Group (MPEG), Audio-Video Interleaved (AVI), MPEG Audio Layer-3 (MP3), and WAV sound files.

What are MIDI files?
A MIDI file is a special type of media file that outlines how the music is produced (for example, on a digital synthesizer) instead of representing the musical sound directly as other media files do. This makes MIDI files much smaller than other audio files.

Are other media file formats affected by this vulnerability?
No. The vulnerability can only result when parsing specially crafted MIDI files. Other media files such as MPEG, MP3, WMV and AVI files are unaffected by this vulnerability.

What's wrong with DirectShow?
There are two buffer overruns with identical effects in the function used by DirectShow to check parameters in a MIDI (.MID) file. A security vulnerability results because it is possible for a malicious user to attempt to exploit this flaw to execute code in the security context of the logged-on user.

If MIDI files are used by Windows Media and other technologies, does that mean there is a problem with Windows Media Player?
No - The flaw is not in Windows Media Player. The flaw exists in DirectShow, and the way it checks the parameters of MIDI files. However, in the case of Windows NT 4.0, this technology was shipped in either Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1.

How could an attacker exploit this vulnerability?
An attacker could seek to exploit this vulnerability by creating a specially crafted MIDI file and then taking one of several actions with it:

  • Host the file on a Web site or network share. In this case, if a user were to click the link or file, the vulnerability could be exploited.
  • If a user were to visit a Web site that had an embedded MIDI file, this could cause the vulnerability to be exploited.
  • Create an HTML-based e-mail message with a link to a Web page or a share that contained the file. If the user viewed the message in the preview pane or opened the message, the vulnerability could be exploited. In addition, an attacker could create an e-mail message with a link to a Web page or a share that contained the file, along with a suggestion that the user click the link.
  • Finally, an attacker could send a malformed MIDI file by using e-mail. An attacker could attach the file to an e-mail message and send it to a user with a suggestion that the user save the file on their system and then play it.

What could this vulnerability enable an attacker to do?
Successfully exploiting this vulnerability could, in the worst case, enable an attacker to run code of his or her choice on the user's system. Because DirectX runs in the context of the user, the attacker's code would also run as the user. Any limitations on the user's ability to delete, add, or modify data or configuration information would also be applied to the attacker's code.

Why is Windows NT 4.0 vulnerable only when either Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 have been installed?
The file that contains the vulnerability is not installed, by default, on Windows NT 4.0. However, this file is installed when either Windows Media Player 6.4 or Internet Explorer 6 Service Pack 1 are installed on Windows NT 4.0.

I am running Internet Explorer on Windows Server 2003. Does this mitigate this vulnerability?
Yes. By default, Internet Explorer on Windows Server 2003 runs in a restricted mode known as Enhanced Security Configuration. In this configuration, Internet Explorer prevents the automatic exploitation of this vulnerability through Outlook Express without user interaction. This is done by setting Outlook Express to read e-mail as plain text as the default.

What is Internet Explorer Enhanced Security Configuration?
Internet Explorer Enhanced Security Configuration is a group of preconfigured Internet Explorer settings that reduce the likelihood of a user or an administrator downloading and running malicious Web content on a server. Internet Explorer Enhanced Security Configuration reduces this risk by modifying numerous security-related settings, including Security tab and Advanced tab settings in the Internet Options dialog box. Disabling Internet Explorer Enhanced Security Configuration would remove the protections put in place that prevent these vulnerabilities from being exploited. For more information regarding Internet Explorer Enhanced Security Configuration, please consult the Managing Internet Explorer Enhanced Security Configuration guide, which can be found at the following location: https://www.microsoft.com/download/details.aspx?FamilyID=d41b036c-e2e1-4960-99bb-9757f7e9e31b&DisplayLang;=en

Is there any configuration of Windows Server 2003 that is likely to have Internet Explorer Enhanced Security Configuration disabled?
Yes. Systems administrators who have deployed Windows Server 2003 as a Terminal Server would likely disable Internet Explorer Enhanced Security Configuration to allow users of the Terminal Server to use Internet Explorer in an unrestricted mode.

How do I know which version of DirectX I have installed?
To check which version of DirectX that is installed on you system you need to run the Dxdiag.exe command-line utility.

  1. On the taskbar at the bottom of your screen, click Start, and then click Run.
  2. In the Run dialog box, type dxdiag
  3. Click OK.
  4. On the System tab of the dialog box that appears, under System Information, the version of DirectX appears.

I am running Windows NT 4.0. How do I know if I need to apply the patch?
For Windows NT 4.0, the patch should be applied if the following key is present and equal to 1: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ActiveSetup\InstalledComponents\{22d6f312-b0f6-11d0-94ab-0080c74c7e95}\IsInstalled

What does the patch do?
The patch eliminates the vulnerability by ensuring that DirectX correctly validates parameters when opening a MIDI file.

Patch availability

Download locations for this patch

Additional information about this patch

Installation platforms:

DirectX 9.0b can be installed on systems running:

  • Windows 98
  • Windows 98 SE
  • Windows Millennium Edition
  • Windows 2000 Service Pack 3
  • Windows XP Gold
  • Windows XP Service Pack 1
  • Windows Server 2003

The patch for DirectX 9.0a can be installed on systems running:

  • Windows 98
  • Windows 98 SE
  • Windows Millennium Edition
  • Windows 2000 Service Pack 3
  • Windows XP Gold
  • Windows XP Service Pack 1
  • Windows Server 2003

The patch for DirectX 8.1 can be installed on systems running:

The patch for Direct X8.0a, DirectX 8.1, DirectX 8.1a, and DirectX 8.1b can be installed on systems running:

The patch for DirectX 7.0 can be installed on systems running:

The patch for Windows NT 4.0 can be installed on systems running:

Inclusion in future service packs:

The fix for this issue is included in Windows 2000 Service Pack 4.

Note The Quartz.dll file included in Windows 2000 Service Pack 4, versioned 6.1.9.728, contains the update for MS03-030. It is the same file as version 6.1.9.729 included in the security update.

The fix for this issue will be included in the following Service Packs:

  • Windows XP Service Pack 2
  • Windows Server 2003 Service Pack 1

Reboot needed: Yes

Patch can be uninstalled:

  • DirectX 9.0b: No
  • DirectX 9.0a patch: No
  • DirectX 8.1 patch on Windows XP or Windows Server 2003: Yes
  • DirectX 8.0, DirectX 8.0a, DirectX 8.1, DirectX 8.1a, and DirectX 8.1b patch on Windows 98, Windows 98 SE, Windows Millennium Edition or Windows 2000: No
  • DirectX 7.1 patch: Yes
  • Windows NT 4.0 patch: Yes

Superseded patches: None.

Verifying patch installation:

  • Windows Server 2003: 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 Server 2003\SP1\KB819696 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 Server 2003\SP1\KB819696\Filelist

  • Windows XP Gold: 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 XP\SP1\Q819696 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 XP\SP1\Q819696\Filelist

  • Windows XP Service Pack 1: 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 XP\SP2\Q819696 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 XP\SP2\Q819696\Filelist

  • Windows 2000 Service Pack 2: 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\SP5\KB819696 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\SP5\KB819696\Filelist

  • Windows 2000 Service Pack 3: 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\SP5\KB819696 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\SP5\KB819696\Filelist

  • Windows NT 4.0 Service Pack 6a: 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\Windows NT\CurrentVersion\Hotfix\Q819696

  • Windows NT 4.0 Service Pack 6 Terminal Server Edition: 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\Windows NT\CurrentVersion\Hotfix\Q819696

  • Windows Server 2003, Windows XP Gold, Windows XP Service Pack 1, Windows 2000 Service Pack 3, Windows Millennium Edition, Windows 98, or Windows 98 Second Edition with DirectX 9.0a: To verify that the DirectX 9.0a patch has been installed on the machine, confirm that the following registry key has been created and has a value of 1: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\DirectX\dx819696\IsInstalled To verify the individual files, use the version information provided in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\DirectX\dx819696\Filelist

  • Windows 2000 Service Pack 3, Windows Millennium Edition, Windows 98, or Windows 98 Second Edition with DirectX 8.0 through DirectX 8.1b: To verify that the DirectX 8 patch has been installed on the machine, confirm that the following registry key has been created and has a value of 1: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\DirectX\dx819696\IsInstalled To verify the individual files, use the version information provided in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\DirectX\dx819696\Filelist

  • For all DirectX 9.0b updates:

    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\DirectX\Version If 9.0b is actually installed, the value will be 4.09.00.0902.

    To verify the individual files, use the File List tab of the Dxdiag.exe command-line utility.

    1. On the taskbar at the bottom of your screen, click Start, and then click Run.
    2. In the Run dialog box, type dxdiag
    3. Click OK.
    4. Click the DirectX Files tab of the dialog box that appears to display the file manifest of DirectX.

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 eEye Digital Security for reporting this issue to us and working with us to help protect customers

Support:

  • Microsoft Knowledge Base article 819696 discusses this issue and will be available approximately 24 hours after the release of this bulletin. Knowledge Base articles can be found on the Microsoft Online Support Web site.
  • Technical support is available from Microsoft Product Support Services. There is no charge for support calls associated with security patches.

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 (July 23, 2003): Bulletin Created.
  • V1.1 (July 23, 2003): Fixed Download Link for Windows NT 4.
  • V1.2 (July 23, 2003): Updated Download Links in Patch Availability section.
  • V2.0 (August 20, 2003): Updated to include details of an additional patch for versions of DirectX.
  • V2.1 (August 20, 2003): Added clarification regarding additional patch in Technical description section.
  • V2.2 (June 16, 2004): Added clarification regarding file versions in Windows 2000 Service Pack 4 in the Patch Availability section.

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