Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:24448
HistoryAug 11, 2010 - 12:00 a.m.

Microsoft Security Bulletin MS10-049 - Critical Vulnerabilities in SChannel could allow Remote Code Execution (980436)

2010-08-1100:00:00
vulners.com
249

Microsoft Security Bulletin MS10-049 - Critical
Vulnerabilities in SChannel could allow Remote Code Execution (980436)
Published: August 10, 2010

Version: 1.0
General Information
Executive Summary

This security update resolves one publicly disclosed vulnerability and one privately reported vulnerability in the Secure Channel (SChannel) security package in Windows. The more severe of these vulnerabilities could allow remote code execution if a user visits a specially crafted Web site that is designed to exploit these vulnerabilities through an Internet Web browser. In all cases, however, an attacker would have no way to force users to visit these Web sites. Instead, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger message that takes users to the attacker's Web site.

This security update is rated Critical for all supported editions of Windows XP and Windows Server 2003; and Important for all supported editions of Windows Vista, Windows Server2008, Windows 7, and Windows Server 2008 R2. For more information, see the subsection, Affected and Non-Affected Software, in this section.

The security update addresses the vulnerabilities by implementing RFC 5746 and additional validation on SSL responses returned by a server. For more information about the vulnerabilities, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability entry under the next section, Vulnerability Information.

This security update also addresses a vulnerability first described in Microsoft Security Advisory 977377.

Recommendation. The majority of customers have automatic updating enabled and will not need to take any action because this security update will be downloaded and installed automatically. Customers who have not enabled automatic updating need to check for updates and install this update manually. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871.

For administrators and enterprise installations, or end users who want to install this security update manually, Microsoft recommends that customers apply the update immediately using update management software, or by checking for updates using the Microsoft Update service.

See also the section, Detection and Deployment Tools and Guidance, later in this bulletin.

Known Issues. None
Top of sectionTop of section
Affected and Non-Affected Software

The following software have been tested to determine which versions or editions are affected. Other versions or editions are either past their support life cycle or are not affected. To determine the support life cycle for your software version or edition, visit Microsoft Support Lifecycle.

Affected Software
Operating System Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update

Windows XP Service Pack 3

Remote Code Execution

Critical

None

Windows XP Professional x64 Edition Service Pack 2

Remote Code Execution

Critical

None

Windows Server 2003 Service Pack 2

Remote Code Execution

Critical

None

Windows Server 2003 x64 Edition Service Pack 2

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

Remote Code Execution

Critical

None

Windows Vista Service Pack 1 and Windows Vista Service Pack 2

Spoofing

Important

None

Windows Vista x64 Edition Service Pack 1 and Windows Vista x64 Edition Service Pack 2

Spoofing

Important

None

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2*

Spoofing

Important

None

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2*

Spoofing

Important

None

Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Spoofing

Important

None

Windows 7 for 32-bit Systems

Spoofing

Important

None

Windows 7 for x64-based Systems

Spoofing

Important

None

Windows Server 2008 R2 for x64-based Systems*

Spoofing

Important

None

Windows Server 2008 R2 for Itanium-based Systems

Spoofing

Important

None

*Server Core installation affected. This update applies, with the same severity rating, to supported editions of Windows Server 2008 or Windows Server 2008 R2 as indicated, whether or not installed using the Server Core installation option. For more information on this installation option, see the TechNet articles, Managing a Server Core Installation and Servicing a Server Core Installation. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008 and Windows Server 2008 R2; see Compare Server Core Installation Options.
Top of sectionTop of section

Frequently Asked Questions (FAQ) Related to This Security Update

Where are the file information details?
Refer to the reference tables in the Security Update Deployment section for the location of the file information details.

Why does this update address several reported security vulnerabilities?
This update contains support for several vulnerabilities because the modifications that are required to address these issues are located in related files. Instead of having to install several updates that are almost the same, customers need to install this update only.

I am using an older release of the software discussed in this security bulletin. What should I do?
The affected software listed in this bulletin have been tested to determine which releases are affected. Other releases are past their support life cycle. For more information about the product lifecycle, visit the Microsoft Support Lifecycle Web site.

It should be a priority for customers who have older releases of the software to migrate to supported releases to prevent potential exposure to vulnerabilities. To determine the support lifecycle for your software release, see Select a Product for Lifecycle Information. For more information about service packs for these software releases, see Lifecycle Supported Service Packs.

Customers who require custom support for older software must contact their Microsoft account team representative, their Technical Account Manager, or the appropriate Microsoft partner representative for custom support options. Customers without an Alliance, Premier, or Authorized Contract can contact their local Microsoft sales office. For contact information, visit the Microsoft Worldwide Information Web site, select the country in the Contact Information list, and then click Go to see a list of telephone numbers. When you call, ask to speak with the local Premier Support sales manager. For more information, see the Microsoft Support Lifecycle Policy FAQ.
Top of sectionTop of section
Vulnerability Information

Severity Ratings and Vulnerability Identifiers

The following severity ratings assume the potential maximum impact of the vulnerability. For information regarding the likelihood, within 30 days of this security bulletin's release, of the exploitability of the vulnerability in relation to its severity rating and security impact, please see the Exploitability Index in the August bulletin summary. For more information, see Microsoft Exploitability Index.
Vulnerability Severity Rating and Maximum Security Impact by Affected Software
Affected Software TLS/SSL Renegotiation Vulnerability - CVE-2009-3555 SChannel Malformed Certificate Request Remote Code Execution Vulnerability - CVE-2010-2566 Aggregate Severity Rating

Windows XP Service Pack 3

Important
Spoofing

Critical
Remote Code Execution

Critical

Windows XP Professional x64 Edition Service Pack 2

Important
Spoofing

Critical
Remote Code Execution

Critical

Windows Server 2003 Service Pack 2

Important
Spoofing

Critical
Remote Code Execution

Critical

Windows Server 2003 x64 Edition Service Pack 2

Important
Spoofing

Critical
Remote Code Execution

Critical

Windows Server 2003 with SP2 for Itanium-based Systems

Important
Spoofing

Critical
Remote Code Execution

Critical

Windows Vista Service Pack 1 and Windows Vista Service Pack 2

Important
Spoofing

Not applicable

Important

Windows Vista x64 Edition Service Pack 1 and Windows Vista x64 Edition Service Pack 2

Important
Spoofing

Not applicable

Important

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2*

Important
Spoofing

Not applicable

Important

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2*

Important
Spoofing

Not applicable

Important

Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Important
Spoofing

Not applicable

Important

Windows 7 for 32-bit Systems

Important
Spoofing

Not applicable

Important

Windows 7 for x64-based Systems

Important
Spoofing

Not applicable

Important

Windows Server 2008 R2 for x64-based Systems*

Important
Spoofing

Not applicable

Important

Windows Server 2008 R2 for Itanium-based Systems

Important
Spoofing

Not applicable

Important

*Server Core installation affected. This update applies, with the same severity rating, to supported editions of Windows Server 2008 or Windows Server 2008 R2 as indicated, whether or not installed using the Server Core installation option. For more information on this installation option, see the TechNet articles, Managing a Server Core Installation and Servicing a Server Core Installation. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008 and Windows Server 2008 R2; see Compare Server Core Installation Options.
Top of sectionTop of section

TLS/SSL Renegotiation Vulnerability - CVE-2009-3555

A spoofing vulnerability exists in the TLS/SSL protocol, implemented in the Microsoft Windows SChannel authentication component. An attacker who successfully exploited this vulnerability would be able to introduce information on a TLS/SSL protected connection, effectively sending traffic spoofing the authenticated client. This security addresses a vulnerability previously discussed in Microsoft Security Advisory 977377.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2009-3555.

Mitigating Factors for TLS/SSL Renegotiation Vulnerability - CVE-2009-3555

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:

Web sites that do not host content via SSL, but only serve content via HTTP (clear text) connections are not affected.

Internet Information Services (IIS) 6 and IIS 7 do not allow client-initiated renegotiation. This reduces the attack surface considerably. SSL sites where a user types in username and password are unlikely to be vulnerable. The most likely scenario that would allow spoofing with IIS 6 and IIS 7 is when client-side certificates are used to perform mutual authentication. This scenario is not common.

Customers are only affected when an attacker is able to successfully conduct a man-in-the-middle attack by exploiting another vulnerability, such as a local subnet attack or DNS spoofing.
Top of sectionTop of section

Workarounds for TLS/SSL Renegotiation Vulnerability - CVE-2009-3555

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:

Enable SSLAlwaysNegoClientCert on IIS 6 and above

Web servers running IIS 6 and later that are affected because they require mutual authentication by requesting a client certificate can be hardened by enabling the SSLAlwaysNegoClientCert setting. This will cause IIS to prompt the client for a certificate upon the initial connection, and does not require a server-initiated renegotiation.

Impact of Workaround: Setting this flag will require the client to authenticate prior to loading any element from the SSL-protected web site. This will cause the browser to always prompt the user for a client certificate upon connecting to the SSL protected web site. If mutual authentication is not required for the SSL protected content, users who are prompted to select a certificate can simply dismiss the dialog box to view the content over the SSL connection without having to select a client certificate to authenticate with.

For IIS 6:

Run the following command from the "c:\inetpub\adminscripts" folder in an elevated / administrator command prompt:

adsutil.vbs SET w3svc/<N>/SSLAlwaysNegoClientCert true

Where <N> represents the number of the web site to be configured (i.e. the 'Default Web Site' is 1, the next web site is 2, etc.). So for example - to protect the 'Default Web Site' created by IIS the following command would be used:

adsutil.vbs SET w3svc/1/SSLAlwaysNegoClientCert true

For IIS 7:

Save the following text to a file called "Enable_SSL_Renegotiate_Workaround.js"

var vdirObj=GetObject("IIS://localhost/W3svc/1");
// replace 1 on this line with the number of the web site you wish to configure

WScript.Echo("Value of SSLAlwaysNegoClientCert Before: " + vdirObj.SSLAlwaysNegoClientCert);
vdirObj.Put("SSLAlwaysNegoClientCert", true);
vdirObj.SetInfo();
WScript.Echo("Value of SSLAlwaysNegoClientCert After: " + vdirObj.SSLAlwaysNegoClientCert);

Run the following command from an elevated / administrator command prompt:

cscript.exe enable_ssl_renegotiate_workaround.js

Top of sectionTop of section

FAQ for TLS/SSL Renegotiation Vulnerability - CVE-2009-3555

What is the scope of the vulnerability?
This vulnerability is a spoofing vulnerability. An attacker who successfully exploited this vulnerability would be able to introduce information on a TLS/SSL protected connection, effectively sending traffic spoofing the authenticated client.

What causes the vulnerability?
The TLS protocol, described in RFC 2246, describes the functionality of renegotiation, which allows either peer to renegotiate the parameters of a protected connection at any point in time. An attacker who is able to leverage another attack, such as DNS spoofing or a local subnet attack, to become a man-in-the-middle on such a connection, could abuse such renegotiation functionality in order to prepend application-specific commands to a valid TLS session being set up.

In specific scenarios, the server may execute those commands in the context of the TLS/SSL authenticated client. In Windows, TLS and SSL are implemented by the Secure Channel (SChannel) security package.

Why is a default installation of IIS 6.0 and above not affected by this vulnerability?
This vulnerability can only be exploited when either peer of the connection is allowed to renegotiate TLS/SSL parameters. IIS prevents any client-initiated TLS/SSL renegotiation. In addition, IIS will only initiate a server-side renegotiation attempt when configured to use certificate based mutual authentication, which is a non-default setting.

Note that in deployments where the actual TLS/SSL connection is not terminated on the IIS server directly, but on a third-party SSL terminator or reverse proxy, the connection may still be susceptible to this vulnerability.

What is a man-in-the-middle attack?
A man-in-the-middle attack occurs when an attacker reroutes communication between two users through the attacker’s computer without the knowledge of the two communicating users. Each user in the communication unknowingly sends traffic to and receives traffic from the attacker, all the while thinking they are communicating only with the intended user. In the case of this vulnerability, the man-in-the-middle cannot read, decrypt or alter the encrypted communication between the client and the server. The man-in-the-middle is only able to introduce a request into the TLS session that gets executed in the context of the client.

What is mutual authentication?
Mutual authentication is a security feature in which a client process must prove its identity to a server, and the server must prove its identity to the client, before any application traffic is sent over the client-to-server connection.

Mutual authentication requires that the client and server prove their respective identities to each other before performing any application functions. Identity can be proved through cryptographic means, as with a public key infrastructure and digital certificates.

What is TLS?
The Transport Layer Security (TLS) Handshake Protocol is responsible for the authentication and key exchange necessary to establish or resume secure sessions. When establishing a secure session, the Handshake Protocol manages the following:

Cipher suite negotiation

Authentication of the server and optionally, the client

Session key information exchange

For more information, see the TechNet article, How TLS/SSL works.

What is SSL?
SSL is a predecessor of the Transport Layer Security protocol. It performs the same functions and supports secure network communications using a combination of public and secret key technology.

For more information, see the TechNet article, How TLS/SSL works.

What is TLS/SSL renegotiation?
Renegotiation is a feature of the TLS and SSL protocols that allows either peer to renegotiate parameters specific to the cryptographic connection, such as encryption keys.

What is the SChannel security package?
The Secure Channel (SChannel) security package is a Security Support Provider (SSP) that implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) Internet standard authentication protocols. These components are used to implement secure communications in support of several common internet and network applications, such as web browsing. SChannel is part of the security package that helps provide an authentication service to provide secure communications between client and server.

For more information, see the MSDN article, Secure Channel.

What might an attacker use the vulnerability to do?
In vulnerable deployments, an attacker could use this vulnerability to prepend content into a legitimate, client-initiated request to a server in the context of a valid TLS/SSL-authenticated session. This vulnerability does not allow the attacker to read, decrypt, or alter encrypted traffic between client and server.

How could an attacker exploit the vulnerability?
An attacker could exploit this vulnerability by setting up a man-in-the-middle attack between a client and server, subsequently interrupting their connection as soon as an SSL renegotiation attempt takes place. At this point in time, the attacker can introduce a limited set of data onto the protected path, which the server will then interpret as originating from its trusted client.

What systems are primarily at risk from the vulnerability?
This vulnerability mainly affects clients used for web browsers, and the corresponding web servers, though some versions of this attack may affect other TLS/SSL protected protocols.

What does the update do?
The update addresses this vulnerability by implementing RFC 5746. This RFC introduces a TLS extension which cryptographically ties TLS renegotiations to the original TLS connection onto which they are performed. This allows authentication to be carried forward and later validated, and prevents the attack.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
Yes. This vulnerability has been publicly disclosed. It has been assigned Common Vulnerability and Exposure number CVE-2009-3555.

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 when this security bulletin was originally issued.
Top of sectionTop of section
Top of sectionTop of section

SChannel Malformed Certificate Request Remote Code Execution Vulnerability - CVE-2010-2566

A remote code execution vulnerability exists in the way that SChannel on a client machine validates a certificate request message sent by the server. An attacker could host a specially crafted Web site that is designed to exploit these vulnerabilities through an Internet Web browser and then convince a user to view the Web site. In all cases, however, an attacker would have no way to force users to visit these Web sites. Instead, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger message that takes users to the attacker's Web site.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2010-2566.

Mitigating Factors for SChannel Malformed Certificate Request Remote Code Execution Vulnerability - CVE-2010-2566

Microsoft has not identified any mitigating factors for this vulnerability.
Top of sectionTop of section

Workarounds for SChannel Malformed Certificate Request Remote Code Execution Vulnerability - CVE-2010-2566

Microsoft has not identified any workarounds for this vulnerability.
Top of sectionTop of section

FAQ for SChannel Malformed Certificate Request Remote Code Execution Vulnerability - CVE-2010-2566

What is the scope of the vulnerability?
This is a remote code execution vulnerability. An attacker who successfully exploited this vulnerability could remotely take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Attempts to exploit this vulnerability will most probably result in a denial of service condition rather than remote code execution.

What causes the vulnerability?
This vulnerability is caused by SChannel insufficiently validating certificate request messages sent by the server.

What is the SChannel security package?
The Secure Channel (SChannel) security package is a Security Support Provider (SSP) that implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) Internet standard authentication protocols. These components are used to implement secure communications in support of several common internet and network applications, such as web browsing. SChannel is part of the security package that helps provide an authentication service to provide secure communications between client and server.

For more information, see the MSDN article, Secure Channel.

What is TLS?
The Transport Layer Security (TLS) Handshake Protocol is responsible for the authentication and key exchange necessary to establish or resume secure sessions. When establishing a secure session, the Handshake Protocol manages the following:

Cipher suite negotiation

Authentication of the server and optionally, the client

Session key information exchange

For more information, see the TechNet article, How TLS/SSL works.

What is SSL?
SSL is a predecessor of the Transport Layer Security protocol. It performs the same functions and supports secure network communications using a combination of public and secret key technology.

For more information, see the TechNet article, How TLS/SSL works.

What might an attacker use the vulnerability to do?
An attacker who successfully exploited this vulnerability could theoretically take complete control of the affected system. However, attempts to exploit this vulnerability would most likely result in Denial of Service. The system would not be able to connect to Web sites or other network resources using SSL or TLS until a restart of the system.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through an Internet web browser and then convince a user to view the Web site. An attacker would have no way to force users to visit these Web sites. Instead, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site.

What systems are primarily at risk from the vulnerability?
This vulnerability requires that a user is logged on and visits a Web site for any malicious action to occur. Therefore, any systems where an Internet Web browser or applications that use SSL or TLS is used frequently, such as workstations or terminal servers, are at the most risk from this vulnerability.

What does the update do?
This update implements additional validation on SSL responses returned by a server.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through coordinated vulnerability 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 when this security bulletin was originally issued.

Other Information
Acknowledgments

Microsoft thanks the following for working with us to help protect customers:

Marsh Ray and Steve Dispensa of PhoneFactor for reporting the TLS/SSL Renegotiation Vulnerability (CVE-2009-3555)
Top of sectionTop of section
Microsoft Active Protections Program (MAPP)

To improve security protections for customers, Microsoft provides vulnerability information to major security software providers in advance of each monthly security update release. Security software providers can then use this vulnerability information to provide updated protections to customers via their security software or devices, such as antivirus, network-based intrusion detection systems, or host-based intrusion prevention systems. To determine whether active protections are available from security software providers, please visit the active protections Web sites provided by program partners, listed in Microsoft Active Protections Program (MAPP) Partners.

Support

Customers in the U.S. and Canada can receive technical support from Security Support or 1-866-PCSAFETY. There is no charge for support calls that are associated with security updates. For more information about available support options, see Microsoft Help and Support.

International customers can receive support from their local Microsoft subsidiaries. There is no charge for support that is associated with security updates. For more information about how to contact Microsoft for support issues, visit the International Support Web site.

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 (August 10, 2010): Bulletin published.