« Galaxy tabのケース | トップページ

2014年9月28日 (日)

SheevaPlugのbash脆弱性対応

bashに脆弱性があるようですので、バージョンアップします。
まずは、バージョンを確認します。

# bash -version
GNU bash, version 3.2.48(1)-release (arm-unknown-linux-gnueabi)
Copyright (C) 2007 Free Software Foundation, Inc.

脆弱性の有無を確認します。

# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

vulnerableと表示されたため、任意のコードが実行できる脆弱性があるようです。
必要となるファイル一式をダウンロードします。

$ wget http://ftp.gnu.org/gnu/bash/bash-3.2.48.tar.gz
$ wget http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-049
$ wget http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-050
$ wget http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-051
$ wget http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-052
$ wget http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-053

適当なディレクトリに移動した後、解凍します。

$ tar -xvf bash-3.2.48.tar.gz

ソースコードにパッチを適用します。たくさんありますが、全て適用します。

$ cd bash-3.2.48/
$ patch -p0 < ../bash32-049
patching file lib/readline/mbutil.c
patching file patchlevel.h
$ patch -p0 < ../bash32-050
patching file lib/readline/mbutil.c
patching file patchlevel.h
$ patch -p0 < ../bash32-051
patching file builtins/read.def
patching file patchlevel.h
$ patch -p0 < ../bash32-052
patching file builtins/common.h
patching file builtins/evalstring.c
patching file variables.c
patching file patchlevel.h
$ patch -p0 < ../bash32-053
patching file parse.y
patching file patchlevel.h

コンパイルします。

$ ./configure

$ make

インストールします。ただし、インストール先が/usr/local/binになってしまうので、後からリンクでごまかします。

$ su -
# make install

バージョンが3.2.53になっているか確認します。

# ls -l /usr/local/bin/bash
-rwxr-xr-x 1 root root 2150134 2014-09-28 10:35 /usr/local/bin/bash

# /usr/local/bin/bash --version
GNU bash, version 3.2.53(1)-release (armv5tel-unknown-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.

リンクでごまかします。

# cd /bin
# mv bash bash-3.2.48
# ln -s /usr/local/bin/bash /bin/bash
# ls -l bash
lrwxrwxrwx 1 root root 19 2014-09-28 10:36 bash -> /usr/local/bin/bash

# exit

最終確認です。

$ bash --version
GNU bash, version 3.2.53(1)-release (armv5tel-unknown-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

vulnerableと表示されないので、脆弱性も無くなりました。

2014/10/08追記

3.2.57までパッチが出ていますので、必ず57までダウンロードした後、57までパッチを適用してください。

|

« Galaxy tabのケース | トップページ

SheevaPlug」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« Galaxy tabのケース | トップページ