Sun Solaris RPC 服务库 librpcsvc 拒绝服务漏洞 « 黑客联盟[民间 公益 非盈利]尚武精神

首页 » 黑客新闻 » 最新漏洞 » Sun Solaris RPC 服务库 librpcsvc 拒绝服务漏洞

Sun Solaris RPC 服务库 librpcsvc 拒绝服务漏洞

10-09-29 14:44 0 RSS 2.0

受影响系统:
Sun Solaris 9.0_x86
Sun Solaris 9.0
Sun Solaris 8.0_x86
Sun Solaris 8.0
Sun Solaris 10_x86
Sun Solaris 10.0

描述:

BUGTRAQ  ID: 26071

Solaris是一款由Sun开发和维护的商业性质UNIX操作系统。

如果用户调用了automountd(1M)服务去访问导出了大量文件系统的远程NFS服务器的话,Solaris RPC服务库(librpcsvc(3LIB))中的安全漏洞可能允许本地非特权用户在系统上导致automountd(1M)守护程序崩溃。如果这个漏洞被利用,则用户可能看到访问autofs(4)加载点的进程变得没有响应并挂起。在Solaris 8、Solaris 9和Solaris 10系统上,控制台会打印且syslogd(1M)守护程序会记录类似于以下的消息:

    Sep  7 08:50:20 client1 autofs: automountd not running, retrying
  
在Solaris 10系统上,控制台还会打印且syslogd(1M)守护程序也会记录类似于以下的消息:

    Sep 12 02:04:12 client1 svc.startd[7]: system/filesystem/autofs:default
    failed repeatedly: transitioned to maintenance (see ‘svcs -xv’ for details)
  
automountd(1M)服务会崩溃,栈追踪类似于以下:

    ff2a31ac xdr_reference (b1bd4, 144ea8, c, ff384898, 81010100, ff00) + 84
    ff299418 xdr_pointer (b1bd4, 144ea8, c, ff384898, 0, 0) + 5c
    ff384880 xdr_exports (b1bd4, 144ea8, 0, 0, 0, 1235b7) + 20
    ff3848e0 xdr_exportnode (b1bd4, 144ea0, ffffffff, 0, 0, 0) + 48
  
这个漏洞还允许远程非特权用户在导出大量文件系统的NFS服务器上导致mountd(1M)服务崩溃,导致无法访问NFS客户端上的NFS共享。如果第二个漏洞被利用导致mountd(1M)拒绝服务的话,会观察到mountd(1M)服务可能会崩溃,栈追踪如下:

    ff2a31ac xdr_reference (b1bd4, 144ea8, c, ff384898, 81010100, ff00) + 84
    ff299418 xdr_pointer (b1bd4, 144ea8, c, ff384898, 0, 0) + 5c
    ff384880 xdr_exports (b1bd4, 144ea8, 0, 0, 0, 1235b7) + 20
    ff3848e0 xdr_exportnode (b1bd4, 144ea0, ffffffff, 0, 0, 0) + 48
  
或者:

    ff2a2b34 xdr_reference (ac92c, 13126c, 8, ff38481c, 81010100, ff00) + 84
    ff298dcc xdr_pointer (ac92c, 13126c, 8, ff38481c, 0, 0) + 5c
    ff384804 xdr_groups (ac92c, 13126c, 0, 0, 6d, 9632c) + 20
    ff384848 xdr_groupnode (ac92c, 131268, ffffffff, 0, 0, 0) + 2c
建议:

临时解决方法:

automountd(1M)漏洞:
  
在可以应用补丁之前,可通过删除或标注出/etc/auto_master文件中的-hosts项并重启automountd(1M)服务来临时解决automountd(1M)崩溃漏洞。
  
在Solaris 8和Solaris 9系统上以root用户运行以下命令重启automountd(1M)服务:

    # /etc/init.d/autofs start
  
在Solaris 10系统上以root用户运行以下命令重启automountd(1M)服务:

    # svcadm restart svc:/system/filesystem/autofs
  
如果svc:/system/filesystem/autofs处在维护状态的话,使用以下命令:

    # svcadm clear svc:/system/filesystem/autofs
    # svcadm enable svc:/system/filesystem/autofs
  
更改之后,必须使用automount(1M)工具卸载/net目录中的所有加载点。如果automount(1M)工具无法卸载/net目录中的任意加载点的话,则修改/etc/auto_master文件后必须重启系统。
  
mountd(1M)漏洞:
  
如果要临时解决非特权用户在远程NFS服务器上导致mountd(1M)服务崩溃的漏洞,可减少远程NFS服务器上共享文件系统的数目并重启该NFS服务器上的NFS服务。
  
如果要减少共享文件系统的数目,查看/etc/dfs/sharetab检查导出的文件系统并删除或标注/etc/dfs/dfstab中的项。
  
在Solaris 8和Solaris 9系统上以root用户运行以下命令重启NFS服务:

    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start

在Solaris 10系统上以root用户运行以下命令重启NFS服务:

    # svcadm restart svc:/network/nfs/server:default

厂商补丁:

Sun已经为此发布了一个安全公告(Sun-Alert-103082)以及相应补丁:
Sun-Alert-103082:Security Vulnerability in the Solaris RPC Services Library (librpcsvc(3LIB)) may Lead to a Denial of Service (DoS) Against Networked File Systems
链接:http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-26-103082-1

联系我 Contact Me

回到页首