[ruby-list:49787] Re: Ubuntu 12.04 LTSでのCVE-2014-2525対応方法
From:
"TAKANO `takano32' Mitsuhiro" <tak@...32.tk>
Date:
2014-04-10 09:58:03 UTC
List:
ruby-list #49787
psych.rb みると psych.so を使ってるみたいなので、それの動的リンクをみればよさそう感あるます。
configure; make -j 4; make install して使ってたりする環境があるのでみてみました。
----
takano32@germanium:~
> ldd -v ./local/stow/ruby-1.9.3-p385/lib/ruby/1.9.1/x86_64-linux/psych.so
linux-vdso.so.1 => (0x00007fff3d1fe000)
libyaml-0.so.2 => /usr/lib/x86_64-linux-gnu/libyaml-0.so.2
(0x00007f75e005a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f75dfc92000)
/lib64/ld-linux-x86-64.so.2 (0x00007f75e0491000)
Version information:
./local/stow/ruby-1.9.3-p385/lib/ruby/1.9.1/x86_64-linux/psych.so:
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libyaml-0.so.2:
libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) =>
/lib64/ld-linux-x86-64.so.2
takano32@germanium:~
> ldd -v ./local/stow/ruby-2.1.1/lib/ruby/2.1.0/x86_64-linux/psych.so
linux-vdso.so.1 => (0x00007fff51a78000)
libyaml-0.so.2 => /usr/lib/x86_64-linux-gnu/libyaml-0.so.2
(0x00007f14ebb65000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f14eb79d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f14ebf9c000)
Version information:
./local/stow/ruby-2.1.1/lib/ruby/2.1.0/x86_64-linux/psych.so:
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libyaml-0.so.2:
libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) =>
/lib64/ld-linux-x86-64.so.2
----
こんなかんじになりました。
# 1.9.3 は今回の対応入る前のやつ。 2.1.1 は対応が入った libyaml-dev とか upgrade したあとにビルド。
どっちも同じファイルをみているみたいにみえますが、リンクで切り替わってて、更新はされているっぽいので
----
takano32@germanium:~
> ls -al /usr/lib/x86_64-linux-gnu/libyaml-0.so.2
lrwxrwxrwx 1 root root 18 4月 3 01:22
/usr/lib/x86_64-linux-gnu/libyaml-0.so.2 -> libyaml-0.so.2.0.2
takano32@germanium:~
> ls -al /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
-rw-r--r-- 1 root root 129104 4月 3 01:22
/usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
----
# 今日、対応したのがバレる・・・
動的に libyaml がロードされている可能性のあるプロセスを停止して起こし直せばよさそう感あります。
当方
Ubuntu 13.10
なので、 libyaml のバージョンが微妙に違いますが、基本的には該当の CVE については
libyaml の shared object が対応した更新されてれば平気かと思います。
バージョンが古いっていう警告は元からでていたんではないですかね。
LTS なら SA っぽいものはバックポートされているとは思います。詳しくわかりませんが。
> You appear to have an outdated version of libyaml (0.1.4) installed on your system.
2014年4月10日 15:05 Yuumi Yoshida <yuumi3@ey-office.com>:
> Yuumi3 です。
>
> Ubuntu 12.04 LTS上の Ruby 2.1.1 で Rails4.04 を使ったアプリを運用しています。
> Ruby 2.1.1 はソースから ./configure; make; make install しています。
>
> CVE-2014-2525 ( https://www.ruby-lang.org/ja/news/2014/03/29/heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525/ )
> 対応方法ですが
>
> Ubuntu 12.04 LTS では CVE-2014-2525 に対応したアップデート
> USN-2160-1 http://www.ubuntu.com/usn/usn-2160-1/ が出ているので、
>
> $ sudo apt-get update
> $ sudo apt-get dist-upgrade
>
> で libyaml (libyaml-dev) が対応されます。
> この後 Railsを動かしているUnicornを再起動すれば良いのでしょうか?
>
>
> ただし、この方法でアップデートした場合は libyaml のバージョンは上がらないので
>
> $ ruby -rpsych -e 'p Psych.libyaml_version’ の結果は [0, 1, 4] ですし。
>
> rake 等を実行すると、
>
> SafeYAML Warning
> ----------------
> You appear to have an outdated version of libyaml (0.1.4) installed on your system.
>
> が表示されますが、Ubuntu 12.04 LTS のアップデートが正しく行われていれば
> 問題無いということで良いのでしょうか?
>
> --
>
> ♪ 吉田 裕美 (Yuumi Yoshida)
> ♪ Blog http://d.hatena.ne.jp/yuum3/
> ♪ HomePage http://www.ey-office.com/
> ♪ Twitter yuumi3
>
> --
>
> ♪ 吉田 裕美 (Yuumi Yoshida)
> ♪ Blog http://d.hatena.ne.jp/yuum3/
> ♪ HomePage http://www.ey-office.com/
> ♪ Twitter yuumi3
>