keyctl命令抛出'undefined symbol:dlopen'错误

时间:2013-01-04 20:35:27

标签: centos5

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

第一个错误是:

root@server [~] keyctl show
segmentation fault

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

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 library?

2 个答案:

答案 0 :(得分:6)

请注意:http://blog.solidshellsecurity.com/2013/02/08/sshd-spam-rootkit-lib64libkeyutils-so-1-9/

似乎没有libkeyutils.so.1.9这样的合法文件 它是一个rootkit,这个库的最新合法版本是CentOS 6.3(最终版)上的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-0871http://blog.configserver.com/index.php?itemid=716

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

答案 1 :(得分:0)

LD_PRELOAD=/lib64/libdl-2.5.so keyctl show