2014-04-07 47 views
1

这与最近的libyaml漏洞(CVE-2014-2525)有关。在Ubuntu上更新Ruby的libyaml

我将Gemfile中的psych更新为2.0.5,但在我的服务器上,libyaml版本仍然是0.1.4而不是0.1.6。

看起来像使用最新的心灵宝石不会更新Ruby使用的libyaml版本。

2.0.0p353 :001 > Psych.libyaml_version 
=> [0, 1, 4] 

显然libyaml指向系统上安装的那个。注意如何libyaml-0.so.2/usr/lib/x86_64-linux-gnu/libyaml-0.so.2

[email protected]:~$ find $MY_RUBY_HOME -name psych.so | xargs ldd 
    linux-vdso.so.1 => (0x00007fff22fff000) 
    libruby.so.2.0 => /home/ubuntu/.rvm/rubies/ruby-2.0.0-p353/lib/libruby.so.2.0 (0x00007fc91a537000) 
    libyaml-0.so.2 => /usr/lib/x86_64-linux-gnu/libyaml-0.so.2 (0x00007fc91a30e000) 
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc919f4d000) 
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc919d30000) 
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc919b28000) 
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc919923000) 
    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fc9196ea000) 
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc9193ee000) 
    /lib64/ld-linux-x86-64.so.2 (0x00007fc91abbf000) 

/usr/lib/x86_64-linux-gnu/libyaml-0.so.2libyaml-0-2软件包安装,如下所示:

[email protected]:~$ dpkg -S /usr/lib/x86_64-linux-gnu/libyaml-0.so.2 
libyaml-0-2: /usr/lib/x86_64-linux-gnu/libyaml-0.so.2 

如果我正确地理解,这意味着红宝石动态链接libyaml到一个由APT安装。

Ubuntu已发布a patch修复了漏洞并且已经安装了修补程序。虽然libyaml的版本仍然是0.1.4。

基于此,该漏洞似乎已经在我的服务器上得到修复。我对吗?有什么方法可以测试该漏洞是否已被修复?

回答

0

我认为ldd只检查动态链接的库。如果它是静态链接的,它将不会被列出。这意味着该漏洞已修复。

如果您自己编译了nginx,那么您可能会静态链接openssl库。 ldd测试将不会显示操作系统libssl.so库的依赖关系。

http://nginx.com/blog/nginx-and-the-heartbleed-vulnerability/