这与最近的libyaml漏洞(CVE-2014-2525)有关。
我按照建议将Gemfile中的内核更新为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
ubuntu@host:~$ 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.2是由libyaml-0-2包安装的,如下所示:
ubuntu@host:~$ 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如果我正确理解它,这意味着Ruby正在动态地将libyaml链接到APT安装的那个。
Ubuntu发布了修复漏洞的一块地,并且该修补程序已经安装。不过,libyaml的版本仍然是0.1.4。
因此,基于此,该漏洞似乎已经修复在我的服务器上。我说的对吗?是否有任何方法来测试该漏洞是否已修复?
发布于 2014-04-11 18:52:54
我认为ldd只检查动态链接的库。如果它是静态链接的,它就不会被列出。这意味着漏洞是固定的。
如果您自己编译了nginx,您可能已经静态地链接了openssl库。ldd测试将不显示对操作系统libssl.so库的依赖。
http://nginx.com/blog/nginx-and-the-heartbleed-vulnerability/
https://stackoverflow.com/questions/22921895
复制相似问题