Vulnerability in Message Queuing Allows Code Execution (MS07-065)
12 Dec. 2007
Summary
This important security update resolves a privately reported vulnerability in Message Queuing Service (MSMQ) that could allow remote code execution in implementations on Microsoft Windows 2000 Server, or elevation of privilege in implementations on Microsoft Windows 2000 Professional and Windows XP.
An attacker must have valid logon credentials to exploit the elevation of privilege vulnerability on Microsoft Windows 2000 Professional and Windows XP. An attacker could then install programs; view, change, or delete data; or create new accounts.
Affected Software:
* Microsoft Windows 2000 Server Service Pack 4 and Microsoft Windows 2000 Professional Service Pack 4
* Windows XP Service Pack 2
Non Affected Software:
* Windows XP Professional x64 Edition and Windows XP Professional x64 Edition Service Pack 2
* Windows Server 2003 Service Pack 1 and Windows Server 2003 Service Pack 2
* Windows Server 2003 x64 Edition and Windows Server 2003 x64 Edition Service Pack 2
* Windows Server 2003 with SP1 for Itanium-based Systems and Windows Server 2003 with SP2 for Itanium-based Systems
* Windows Vista
* Windows Vista x64 Edition
Message Queuing Service Remote Code Execution Vulnerability - CVE-2007-3039:
A remote code execution vulnerability exists in the Message Queuing Service when it incorrectly validates input strings before passing the strings to a buffer. An attacker could exploit the vulnerability by constructing a specially crafted MSMQ message that could allow remote code execution in a remote attack scenario on Microsoft Windows 2000 Server and a local elevation of privilege in a local scenario on Microsoft Windows 2000 Professional and Windows XP. An attacker who successfully exploited this vulnerability could take complete control of an affected system.
To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2007-3039.
Mitigating Factors for Message Queuing Service Remote Code Execution Vulnerability - CVE-2007-3039:
Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:
* An attacker must have valid logon credentials in order to exploit this vulnerability on Microsoft 2000 Professional and Windows XP.
* By default, the Message Queuing component is not installed on any affected operating system edition and can only be enabled by a user with administrative privileges. Only customers who manually install the Message Queuing component are likely to be vulnerable to this issue.
* For customers that require the Message Queuing component, firewall best practices and standard default firewall configurations can help protect networks from attacks that originate outside the enterprise perimeter. Best practices recommend that systems that are connected to the Internet have a minimal number of ports exposed.
Workarounds for Message Queuing Service Remote Code Execution Vulnerability - CVE-2007-3039:
Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:
* Block the following at the firewall:
* All unsolicited inbound traffic on ports greater than 1024
* Any other specifically configured RPC port
These ports are used to initiate a connection with RPC. Blocking them at the firewall will help prevent systems that are behind that firewall from attempts to exploit this vulnerability. Also, make sure that you block any other specifically configured RPC port on the remote system. Microsoft recommends that you block all unsolicited inbound communication from the Internet to help prevent attacks that may use other ports. For more information about the ports that RPC uses, visit TCP and UDP Port Assignments.
* Disable the Message Queuing Service:
* Interactively:
Disabling the Message Queuing service will help protect the affected system from attempts to exploit this vulnerability. To disable the Message Queuing service, follow these steps:
1. Click Start, and then click Control Panel. Alternatively, point to Settings, and then click Control Panel.
2. Double-click Administrative Tools. Alternatively, click Switch to Classic View and then double-click Administrative Tools.
3. Double-click Services.
4. Double-click Message Queuing.
5. In the Startup type list, click Disabled.
6. Click Stop, and then click OK.
You can also stop and disable the MSMQ service by using the following command at the command prompt (available in Windows XP and in the Microsoft Windows 2000 Resource Kit): sc stop MSMQ & sc config MSMQ start= disabled
* By Group Policy:
Disable the Message Queuing service by using the Group Policy settings. You can disable the startup of this service at either the local, site, domain, or organizational-unit level by using Group Policy object functionality in Microsoft Windows 2000 domain environments or in Windows Server 2003 domain environments.
Note: You may also review the Windows Server 2003 Security Guide. This guide includes information about how to disable services.
How to undo the workaround: Use the steps above to set the Startup Type to Automatic and start the service.
FAQ for Message Queuing Service Code Execution Vulnerability - CVE-2007-3039: What is the scope of the vulnerability?
This is a remote code execution vulnerability for Microsoft Windows 2000 Server and a local elevation of privilege vulnerability for Microsoft Windows 2000 Professional and Windows XP. An attacker who successfully exploited this vulnerability could take complete control of an affected system remotely on Microsoft Windows 2000 Server and locally on Microsoft Windows 2000 Professional and Windows XP. An attacker could then install programs or view, change, or delete data.
What causes the vulnerability?
The MSMQ service improperly checks input strings before passing them to the buffer. As a result, an unchecked buffer overrun in the service code is possible, allowing an attacker to execute arbitrary code in the context of LOCAL SYSTEM.
What is Message Queuing?
Microsoft Message Queuing technology enables applications that are running at different times to communicate across heterogeneous networks and across systems that may be temporarily offline. Applications send messages to queues and read messages from queues. Message Queuing provides guaranteed message delivery, efficient routing, security, and priority-based messaging. It can be used to implement solutions for both asynchronous and synchronous messaging scenarios. For more information about Message Queuing, see the Message Queuing product documentation.
What might an attacker use the vulnerability to do?
An attacker who successfully exploited this vulnerability could gain local system rights which could allow remote code execution in implementations on Microsoft Windows 2000 Server, or elevation of privilege in implementations on Windows 2000 Professional and Windows XP. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights.
How could an attacker exploit the vulnerability?
To exploit this vulnerability locally on Microsoft 2000 Professional and Windows XP, an attacker would first have to log on to the system. To exploit this vulnerability remotely on Microsoft Windows 2000 Server, an attacker would have to send specially crafted packets to the MSMQ service that could exploit the vulnerability and gain complete control of the affected system.
What systems are primarily at risk from the vulnerability?
Microsoft Windows 2000 and Windows XP systems that have the MSMQ service enabled are the systems that are primarily at risk.
What does the update do?
The update removes the vulnerability by modifying the way that the MSMQ service validates input strings before passing the strings to the allocated buffer.
When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure.
When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers and had not seen any examples of proof of concept code published when this security bulletin was originally issued.