【问题标题】:Updating Ruby's libyaml on Ubuntu在 Ubuntu 上更新 Ruby 的 libyaml
【发布时间】:2014-04-07 20:00:24
【问题描述】:

这与最近的 libyaml 漏洞(CVE-2014-2525)有关。

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

看起来使用最新的 psych gem 不会更新 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.2libyaml-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 已经发布了a patch 修复了漏洞并且已经安装了补丁。 libyaml 的版本仍然是 0.1.4。

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

【问题讨论】:

    标签: ruby-on-rails ruby security ubuntu libyaml


    【解决方案1】:

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

    如果你自己编译过 nginx,你可能已经静态链接了 openssl 库。 ldd 测试将​​显示不依赖于操作系统 libssl.so 库。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 2013-07-18
      • 2014-05-20
      • 2013-03-22
      • 1970-01-01
      • 2011-06-23
      • 2023-04-04
      相关资源
      最近更新 更多