2014-04-07 44 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/