こんにちは、鯨井貴博@opensourcetechです。
先日、RedhatよりBashに関する脆弱性がアナウンスされました。
https://access.redhat.com/solutions/1207723
内容としては、
bashを使用しているサーバなどへのリモートアクセスなどの際に、
環境変数などを指定する事が出来るbashの機能に起因しており、
通常は適用されるアクセス制限などを回避してコマンド等を実行出来てしますというものです。
これに便乗して、
httpd(Webサーバ)におけるCGIやSSH通信などでも同様の事が実施出来てしまうとの事。
Redhat5・6・7(CentOS5・6・7)のbashで影響を受ける可能性があり、
7ではbash-4.2.45-5.el7_0.2、
6ではbash-4.1.2-15.el6_5.1、
5ではbash-3.2-33.el5.1へのアップグレードでOKとのことです。
※アップグレードには、yumやrpmを使用します。
bashの動作による確認では、
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"を
実行し、判別出来るとの事。
脆弱性に該当する場合は、
vulnerable
this is a test
脆弱性に該当しない場合は、
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
となるとの事。
ということで手元のCentOS5及びCentOS7にて確認してみました。
CentOS5
-------
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"を実行すると、
やはり脆弱性に該当しております。
ちなみにbashのバージョンは3.2-24.el5
なので、bash-3.2-33.el5.1をダウンロードし、
インストールします。
wget http://ftp.riken.jp/Linux/centos/5/updates/i386/RPMS/bash-3.2-33.el5.1.i386.rpm
rpm -Fvh bash-3.2-33.el5.1.i386.rpm
rpm -q bash
そして再度
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"を実行すると、
無事脆弱性を修正出来ました。
CentOS7
-------
こちらでも、脆弱性にはばっちり該当しております。
なので、yumにてbashをアップデートした後、
再度
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"。
無事に修正出来ました。