Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:2294
HistoryDec 21, 2001 - 12:00 a.m.

Security Bulletin MS01-060

2001-12-2100:00:00
vulners.com
11

Title: SQL Server Text Formatting Functions Contain unchecked
Buffers
Date: 20 December 2001
Software: Microsoft SQL Server 7.0 and Microsoft SQL Server 2000
Impact: Run code of attacker's choice on server,
denial of service
Max Risk: Moderate
Bulletin: MS01-060

Microsoft encourages customers to review the Security Bulletin at:
http://www.microsoft.com/technet/security/bulletin/MS01-060.asp.


Issue:

SQL Server 7.0 and 2000 provide a number of functions that enable
database queries to generate text messages. In some cases, the
functions create a text message and store it in a variable; in
others, the functions directly display the message. Two
vulnerabilities associated with these functions have been discovered.

The first vulnerability results because of a flaw in the functions
themselves. Several of the functions don't adequately verify that the
requested text will fit into the buffer that's supplied to hold it. A
buffer overrun could occur as a result, and could be used either to
run code in the security context of the SQL Server service or to
cause the SQL Server service to fail. SQL Server can be configured to
run in various security contexts, and by default runs as a domain
user. The precise privileges the attacker could gain would depend on
the specific security context that the service runs in.

The second vulnerability results because of a format string
vulnerability in the C runtime functions that the SQL Server
functions call when installed on Windows NT(r) 4.0, Windows(r) 2000
or Windows XP. Although format string vulnerabilities often can be
exploited to run code of the attacker's choice, that is not true in
this case. Because of the specific way this vulnerability occurs, the
C Runtime code would always be overrun with the same values
regardless of the attacker's inputs. As a result, this vulnerability
could only be used as a denial of service.

An attacker could exploit the vulnerabilities in either of two ways.
The most direct way would be for the attacker to simply load and
execute a database query that calls one of the affected functions.
Alternatively, if a web site or other database front-end would accept
and process arbitrary queries, it could be possible for the attacker
to provide inputs that would cause the query to call an affected
function with the appropriate parameters.

Because the two vulnerabilities have different root causes, there are
separate patches for each. Microsoft recommends that the SQL Server
patch be applied to all affected servers. However, we recommend that
customers carefully weigh whether they need to apply the C runtime
patch. We make this recommendation for two reasons:

The C runtime vulnerability only allows denial of service attacks, so
the threat it poses is somewhat lower.
The C runtime plays a crucial role in the operating system itself.
While we are confident that both patches are well-tested, if there
were a regression error in the C runtime, the effects would likely be
serious and widespread.

Mitigating Factors:

  • The effect of exploiting the first vulnerability would depend
    on how the SQL Server service was configured. SQL Server can
    be configured to run in a security context of the administrator's
    choosing. (By default, it runs as a domain user). If best
    practices are followed, and the service is configured to run
    with the least privileges necessary, it would limit the worst-case
    damage an attacker could achieve.
  • The second vulnerability could only be used for denial of service
    attacks. It could not be used to run code on the machine.
  • The second vulnerability could only be exploited against SQL
    Server when running on Windows NT 4.0, Windows 2000 or Windows XP.
  • Both vectors for exploiting the vulnerabilities could be blocked
    by following best practices. Specifically, untrusted users should
    not be allowed to load and execute queries of their choice on a
    database server, and publicly accessible database queries should
    thoroughly filter all inputs prior to using them.

Risk Rating:

SQL Server Vulnerability:

  • Internet servers: Moderate
  • Intranet servers: Moderate
  • Client systems: Moderate

C Runtime Vulnerability:

  • Internet servers: Low
  • Intranet servers: Low
  • Client systems: Low

Patch Availability:

Acknowledgment:


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.