CVE:CVE-2002-0567
CNNVD:CNNVD-200207-016
Oracle是一个流行的商业数据库系统，它可以在Windows和很多Unix系统下运行。
由于Oracle数据库缺乏完整的身份验证，允许攻击者远程调用任意系统库函数，从而以数据库运行权限执行任意命令。
Oracle数据库的大部分功能是由PL/SQL包提供的。PL/SQL允许创建一些包含导出的过程和函数的可执行package。PL/SQL package可以调用那些由操作系统库或动态链接库导出的函数。攻击者可以调用system()函数并向其传递所要执行的程序名，显然用户如果能够执行上述操作，应该能以那些有"CREATE LIBRARY"权限的用户身份登陆进入数据库。然而攻击者可以欺骗Oracle服务器，无需通过身份认证就可加载任意系统库并执行任意函数。
当一个PL/SQL package要求运行一个外部过程时，oracle进程连接到Listener并请求它加载相关的库。Listener会启动另外一个进程(在Unix系统下是extproc，在Windows系统下是extproc.exe)，将oracle转向该进程。oracle进程通过命名管道连接extproc进程，并将发给Listener的请求转发给它。Extproc进程加载相应的库并调用该函数。然而，在上述过程中没有执行任何认证。攻击者可以伪装成oracle进程，并强迫使用套接字而不是命名管道进行远程操作。攻击者可以通过TCP连接listener/extproc端口，无需认证就可以使oracle执行任意的库函数，例如system()调用。在Windows系统下，Oracle数据库缺省是以Local SYSTEM身份运行，在Unix系统下，缺省是以"oracle"用户身份运行。攻击者可以远程以上述用户身份执行任意命令。
solution:Upgrade oracle database_server to a higher version than 8.0.1,8.0.2,8.0.3,8.0.4,8.0.5,8.0.5.1,8.0.6,8.1.5,8.1.6,8.1.7,8.1.7.0.0,and avoid the version 8.0.1,8.0.2,8.0.3,8.0.4,8.0.5,8.0.5.1,8.0.6,8.1.5,8.1.6,8.1.7,8.1.7.0.0; Upgrade oracle oracle8i to a higher version than 8.1.5,8.1.6,8.1.7,8.1.7.1,enterprise_8.0.5.0.0,enterprise_8.0.6.0.0,enterprise_8.0.6.0.1,enterprise_8.1.5.0.0,enterprise_8.1.5.0.2,enterprise_8.1.5.1.0,enterprise_8.1.6.0.0,enterprise_8.1.6.1.0,enterprise_8.1.7.0.0,enterprise_8.1.7.1.0,and avoid the version 8.1.5,8.1.6,8.1.7,8.1.7.1,enterprise_8.0.5.0.0,enterprise_8.0.6.0.0,enterprise_8.0.6.0.1,enterprise_8.1.5.0.0,enterprise_8.1.5.0.2,enterprise_8.1.5.1.0,enterprise_8.1.6.0.0,enterprise_8.1.6.1.0,enterprise_8.1.7.0.0,enterprise_8.1.7.1.0; Upgrade oracle oracle9i to a higher version than 9.0,9.0.1,and avoid the version 9.0,9.0.1