1

これは、最近の libyaml の脆弱性 ( CVE-2014-2525 ) に関連しています。

提案どおりに psych を 2.0.5に更新しましGemfileたが、サーバーの libyaml バージョンは 0.1.6 ではなく 0.1.4 のままです。

最新の 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 は脆弱性を修正するパッチをリリースしており、そのパッチは既にインストールされています。libyaml のバージョンはまだ 0.1.4 です。

それに基づいて、脆弱性は私のサーバーで既に修正されているようです。私は正しいですか?脆弱性が修正されたことをテストする方法はありますか?

4

1 に答える 1