Oracle TNS Listener执行任意库调用漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1204737 漏洞类型 未知
发布时间 2002-02-06 更新时间 2005-05-02
CVE编号 CVE-2002-0567 CNNVD-ID CNNVD-200207-016
漏洞平台 N/A CVSS评分 7.5
|漏洞来源
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200207-016
|漏洞详情
Oracle是一个流行的商业数据库系统,它可以在Windows和很多Unix系统下运行。由于Oracle数据库缺乏完整的身份验证,允许攻击者远程调用任意系统库函数,从而以数据库运行权限执行任意命令。Oracle数据库的大部分功能是由PL/SQL包提供的。PL/SQL允许创建一些包含导出的过程和函数的可执行package。PL/SQLpackage可以调用那些由操作系统库或动态链接库导出的函数。攻击者可以调用system()函数并向其传递所要执行的程序名,显然用户如果能够执行上述操作,应该能以那些有"CREATELIBRARY"权限的用户身份登陆进入数据库。然而攻击者可以欺骗Oracle服务器,无需通过身份认证就可加载任意系统库并执行任意函数。当一个PL/SQLpackage要求运行一个外部过程时,oracle进程连接到Listener并请求它加载相关的库。Listener会启动另外一个进程(在Unix系统下是extproc,在Windows系统下是extproc.exe),将oracle转向该进程。oracle进程通过命名管道连接extproc进程,并将发给Listener的请求转发给它。Extproc进程加载相应的库并调用该函数。然而,在上述过程中没有执行任何认证。攻击者可以伪装成oracle进程,并强迫使用套接字而不是命名管道进行远程操作。攻击者可以通过TCP连接listener/extproc端口,无需认证就可以使oracle执行任意的库函数,例如system()调用。在Windows系统下,Oracle数据库缺省是以LocalSYSTEM身份运行,在Unix系统下,缺省是以"oracle"用户身份运行。攻击者可以远程以上述用户身份执行任意命令。
|参考资料

来源:CERT/CCAdvisory:CA-2002-08
名称:CA-2002-08
链接:http://www.cert.org/advisories/CA-2002-08.html
来源:US-CERTVulnerabilityNote:VU#180147
名称:VU#180147
链接:http://www.kb.cert.org/vuls/id/180147
来源:BID
名称:4033
链接:http://www.securityfocus.com/bid/4033
来源:otn.oracle.com
链接:http://otn.oracle.com/deploy/security/pdf/plsextproc_alert.pdf
来源:BUGTRAQ
名称:20020206RemoteCompromiseinOracle9iDatabaseServer
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=101301332402079&w=2
来源:XF
名称:oracle-plsql-remote-access(8089)
链接:http://xforce.iss.net/static/8089.php