Alert: Microsoft Security Bulletin - MS02-039

From: Russ (Russ.Cooper@RC.ON.CA)
Date: 07/25/02


Date:         Wed, 24 Jul 2002 20:00:25 -0400
From: Russ <Russ.Cooper@RC.ON.CA>
To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM

http://www.microsoft.com/technet/security/bulletin/MS02-039.asp

Buffer Overruns in SQL Server 2000 Resolution Service Could Enable Code Execution (Q323875)

Originally posted: July 24, 2002

Summary

Who should read this bulletin: System administrators using Microsoft® SQL Server(tm) 2000.

Impact of vulnerability: Three vulnerabilities, the most serious of which could enable an attacker to gain control over an affected SQL Server 2000 installation.

Maximum Severity Rating: Critical

Recommendation: SQL Server 2000 customers should install the patch immediately.

Affected Software:
- Microsoft SQL Server 2000

Technical description:

SQL Server 2000 introduces the ability to host multiple instances of SQL Server on a single physical machine. Each instance operates for all intents and purposes as though it was a separate server. However, the multiple instances cannot all use the standard SQL Server session port (TCP 1433). While the default instance listens on TCP port 1433, named instances listen on any port assigned to them. The SQL Server Resolution Service, which operates on UDP port 1434, provides a way for clients to query for the appropriate network endpoints to use for a particular SQL Server instance.

There are three security vulnerabilities here. The first two are buffer overruns. By sending a carefully crafted packet to the Resolution Service, an attacker could cause portions of system memory (the heap in one case, the stack in the other) to be overwritten. Overwriting it with random data would likely result in the failure of the SQL Server service; overwriting it with carefully selected data could allow the attacker to run code in the security context of the SQL Server service.

The third vulnerability is a denial of service vulnerability. SQL uses a keep-alive mechanism to distinguish between active and passive instances. It is possible to create a keep-alive packet that, when sent to the Resolution Service, will cause SQL Server 2000 to respond with the same information. An attacker who created such a packet, spoofed the source address so that it appeared to come from a one SQL Server 2000 system, and sent it to a neighboring SQL Server 2000 system could cause the two systems to enter a never-ending cycle of keep-alive packet exchanges. This would consume resources on both systems, slowing performance considerably.

Mitigating factors:
Buffer Overruns in SQL Server Resolution Service:
- SQL Server 2000 runs in a security context chosen by the administrator at installation time. By default, it runs as a Domain User. Thus, although the attacker's code could take any desired action on the database, it would not necessarily have significant privileges at the operating system level if best practices have been followed.
- The risk posed by the vulnerability could be mitigated by, if feasible, blocking port 1434 at the firewall.Denial of Service via SQL Server Resolution Service:
- An attack could be broken off by restarting the SQL Server 2000 service on either of the affected systems. Normal processing on both systems would resume once the attack ceased.
- The vulnerability provides no way to gain any privileges on the system. It is a denial of service vulnerability only.

Vulnerability identifier:
- Buffer Overruns in SQL Server Resolution Service: CVE-CAN-2002-0649
- Denial of Service via SQL Server Resolution Service: CVE-CAN-2002-0650

This email is sent to NTBugtraq automatically as a service to my subscribers. Since its programmatically created, and since its been a long time since anyone paid actual money for my programming skills, it may or may not look that good...;-]

I can only hope that the information it does contain can be read well enough to serve its purpose.

Cheers,
Russ - Surgeon General of TruSecure Corporation/NTBugtraq Editor



Relevant Pages