首页 -> 安全研究

安全研究

安全漏洞
SOAP::Lite远程任意命令可执行漏洞

发布日期:2002-04-12
更新日期:2002-04-15

受影响系统:
Paul Kulchenko SOAP::Lite
描述:
BUGTRAQ  ID: 4493
CVE(CAN) ID: CVE-2002-1742

SOAP::Lite是一套PERL模块组件,为简单对象访问协议(SOAP)提供简单轻量级访问接口,可使用在Liunx、unix、windows系统下。

在调用了SOAP::Lite组件的应用服务程序中存在漏洞,可导致攻击者以调用SOAP::Lite组件的应用服务程序的进程执行任意命令。

SOAP::Lite组件中的HTTP::Daemon::ClientConn;包不安全的使用了open函数,其有漏洞代码如下:

...
package HTTP::Daemon::ClientConn;
...
sub send_file
{
    my($self, $file) = @_;
    my $opened = 0;
    if (!ref($file)) {
        local(*F);
        open(F, $file) || return undef;
...

攻击者可以调用$soap->call("X:HTTP::Daemon::ClientConn::send_file" => "|/bin/ps");形式导致服务端以Demo->HTTP::Daemon::ClientConn::send_file("|/bin/ps");的顺序调用函数,通过"|"元字符可导致其后命令以调用SOAP::Lite组件服务程序进程的权限执行任意命令。

<*来源:stealth (stealth@segfault.net
  
  链接:http://archives.neohapsis.com/archives/bugtraq/2002-04/0124.html
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* Ilya Martynov (http://martynov.org/) 提供了一个非官方的补丁:

--- /home/ilya/tmp/Lite.pm Tue Apr 9 21:27:07 2002
+++ /usr/share/perl5/SOAP/Lite.pm Tue Apr 9 21:40:10 2002
@@ -2068,6 +2068,11 @@
($method_uri, $method_name) = ($request->namespaceuriof || '',
$request->dataof->name)
unless $method_name;

+ # don't allow method names which contain package names
+ # i.e package::method or package'method (old deprecated syntax)
+ die "Denied access to method ($method_name)"
+ if $method_name =~ /[:']/;
+
$self->on_action->(my $action = $self->action, $method_uri, $method_name);

my($class, $static);

厂商补丁:

Paul Kulchenko
--------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.soaplite.com/

浏览次数:3190
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障