Title: SQL Extended Procedure Functions Contain Unchecked
Buffers (Q319507)
Date: 17 April 2002
Software: Microsoft SQL Server
Impact: Run Code of Attacker's Choice
Max Risk: Moderate
Bulletin: MS02-020
Microsoft encourages customers to review the Security Bulletin at:
http://www.microsoft.com/technet/security/bulletin/MS02-020.asp.
SQL Server 7.0 and 2000 provide for extended stored procedures,
which are external routines written in a programming language such
as C. These procedures appear to users as normal stored procedures
and are executed in the same way. SQL Server 7.0 and 2000 include
a number of extended stored procedures which are used for various
helper functions
Several of the Microsoft-provided extended stored procedures have
a flaw in common - namely, they fail to perform input validation
correctly, and are susceptible to buffer overruns as a result
exploiting the flaw could enable an attacker to either cause the
SQL Server service to fail, or to cause code to run in the security
context in which SQL Server is running. 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.
An attacker could exploit this vulnerability in one of two ways.
Firstly, the attacker could attempt to load and execute a database
query that calls one of the affected functions. Secondly, if a
web-site or other database front-end were configured to access
and process arbitrary queries, it could be possible for the
attacker to provide inputs that would cause the query to call
one of the functions in question with the appropriate
malformed parameters.
The effect of exploiting the vulnerability would depend on the
specific configuration of the SQL Server service. SQL Server can
be configured to run in a security context chosen by the
administrator. By default, this context is as a domain user.
If the rule of least privilege has been followed, it would
minimize the amount of damage an attacker could achieve.
The vector for exploiting this vulnerability could be blocked
by following best practices. Specifically, untrusted users should
not be able to load and execute queries of their choice on a
database server. In addition, publicly accessible database
queries should filter all inputs prior to processing.
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.