keyctl 命令引发'undefined symbol: dlopen'错误



我在生产服务器上运行Centos 5.8。我有一个应用程序,需要使用keyctl命令,但每次应用程序调用(或我调用)命令,我有一些错误。

第一个错误是:

root@server [~] keyctl show
segmentation fault

然后,我使用yum重新安装了keytils二进制文件。这些是我在服务器上的keytils包:

root@server [~]# rpm -qa | grep keyutils 
keyutils-libs-1.2-1.el5 
keyutils-libs-1.2-1.el5 
keyutils-1.2-1.el5 
keyutils-libs-devel-1.2-1.el5

现在,我有另一个不同的错误:

root@server [~]# keyctl show
keyctl: symbol lookup error: /lib64/libkeyutils.so.1: undefined symbol: dlopen

我检查了keyctl的库,libdl不在那里。

root@server [~]# ldd /bin/keyctl  
linux-vdso.so.1 => (0x00007fffcc5fd000) 
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000033df000000) 
libc.so.6 => /lib64/libc.so.6 (0x0000003d7ae00000) 
/lib64/ld-linux-x86-64.so.2 (0x0000003d7aa00000)

所有使用的库都可以。

root@server [~]# ls -al /lib64/libkeyutils* 
-rwxr-xr-x 1 root root 9472 Jan 6 2007 /lib64/libkeyutils-1.2.so* 
lrwxrwxrwx 1 root root 18 Nov 21 07:56 /lib64/libkeyutils.so.1 -> libkeyutils.so.1.9* 
-rwxr-xr-x 1 root root 34584 Jan 6 2007 /lib64/libkeyutils.so.1.9*
root@server [~]# ls -al /lib64/libdl* 
-rwxr-xr-x 1 root root 23360 Aug 27 08:59 /lib64/libdl-2.5.so* 
lrwxrwxrwx 1 root root 12 Nov 16 02:01 /lib64/libdl.so.2 -> libdl-2.5.so* 
root@server [~]#

你以前见过这个问题吗?我试着在其他发行版上运行相同的版本,它可以工作。

我想重新安装这个服务器,但是我不能,因为它是生产服务器。

是否有一种方法可以添加或链接共享库到二进制已经链接到其他人。so库?

查看:http://blog.solidshellsecurity.com/2013/02/08/sshd-spam-rootkit-lib64libkeyutils-so-1-9/

似乎没有libkeyutils.so.1.9这样的合法文件这是一个rootkit,这个库的最新合法版本是CentOS 6.3 (final)上的libkeyutils.so.1.3。

rm -f /lib64/libkeyutils.so.1.9
ldconfig
/etc/init.d/sshd restart

在所有CentOS和RedHat内核中还有一个疑似未修补的用户升级特权漏洞:https://access.redhat.com/security/cve/CVE-2013-0871和http://blog.configserver.com/index.php?itemid=716

您可能还需要重新安装SSH:

  • https://serverfault.com/questions/476954/remove-shared-library-from-sshd
  • https://forums.cpanel.net/f185/sshd - rootkit - 323962. - html
LD_PRELOAD=/lib64/libdl-2.5.so keyctl show

最新更新