サブスクリプション登録されていないRHELのbash対策(CVE-2014-7169)にCentOSのSRPMを使用してパッケージをリビルドしてアップデートしてみました
テスト環境はRedHat Enterprise Linux 5.9(64bit)です
ちなみにサブスクリプション登録されていないとyumが使用できません
またrpmパッケージも一般には公開されていないためダウンロードができないので今回のように重大な脆弱性の場合は何かしらの代替手段が講じるしかないと思います
1 2 3 4 5 |
[root@host1 ~]# yum update bash Loaded plugins: product-id, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Update Process No Packages marked for Update |
既存の環境
RedHat Enterprise Linux 5.9(64bit) + bash-3.2-32.el5
- SRPMのダウンロード
- リビルド
- bashアップデート
- 確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@host1 ~]# cd /usr/local/src [root@host1 src]# wget http://vault.centos.org/5.10/updates/SRPMS/bash-3.2-33.el5_10.4.src.rpm --2014-09-29 11:09:51-- http://vault.centos.org/5.10/updates/SRPMS/bash-3.2-33.el5_10.4.src.rpm vault.centos.org をDNSに問いあわせています... 95.211.98.141 vault.centos.org|95.211.98.141|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 4819738 (4.6M) [application/x-rpm] `bash-3.2-33.el5_10.4.src.rpm' に保存中 100%[======================================>] 4,819,738 873K/s 時間 6.6s 2014-09-29 11:10:00 (713 KB/s) - `bash-3.2-33.el5_10.4.src.rpm' へ保存完了 [4819738/4819738] [root@14svatr01 src]# ls -l -rw-r--r-- 1 root root 4819738 9月 26 11:11 bash-3.2-33.el5_10.4.src.rpm |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[root@host1 src]# rpmbuild --rebuild bash-3.2-33.el5_10.4.src.rpm bash-3.2-33.el5_10.4.src.rpm をインストール中です。 警告: InstallSourcePackage: ヘッダ V3 DSA signature: NOKEY, key ID e8562897 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します (snip) + cp -pr doc/article.ps doc/bash.ps doc/bashbug.ps doc/bashref.ps doc/builtins.ps doc/rbash.ps doc/rose94.ps doc/bash.0 doc/bashbug.0 doc/builtins.0 doc/rbash.0 doc/bash.html doc/bashref.html doc/article.txt /var/tmp/bash-3.2-33.4-root-root/usr/share/doc/bash-3.2 + exit 0 Provides: config(bash) = 3.2-33.4 Requires(interp): /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(postun): /bin/sh Requires: /bin/bash /bin/sh config(bash) = 3.2-33.4 libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libtermcap.so.2()(64bit) mktemp rtld(GNU_HASH) ファイルの処理中: bash-debuginfo-3.2-33.4 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/bash-3.2-33.4-root-root 書き込み完了: /usr/src/redhat/RPMS/x86_64/bash-3.2-33.4.x86_64.rpm 書き込み完了: /usr/src/redhat/RPMS/x86_64/bash-debuginfo-3.2-33.4.x86_64.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.29855 + umask 022 + cd /usr/src/redhat/BUILD + cd bash-3.2 + rm -rf /var/tmp/bash-3.2-33.4-root-root + exit 0 実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.29855 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf bash-3.2 + exit 0 [root@host1 src]# ls -l /usr/src/redhat/RPMS/x86_64/ 合計 3228 -rw-r--r-- 1 root root 1907807 9月 30 11:14 bash-3.2-33.4.x86_64.rpm -rw-r--r-- 1 root root 1385172 9月 30 11:14 bash-debuginfo-3.2-33.4.x86_64.rpm |
1 2 3 |
[root@host1 src]# rpm -Uvh /usr/src/redhat/RPMS/x86_64/bash-3.2-33.4.x86_64.rpm 準備中... ########################################### [100%] 1:bash ########################################### [100%] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@host1 src]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test" this is a test [root@host1 src]# rpm -qa | grep bash bash-3.2-33.4 [root@host1 src]# rpm -q --changelog bash * 木 9月 25 2014 Ondrej Oprala <ooprala@redhat.com> - 3.2-33.4 - CVE-2014-7169 - bypass patch bug Related: #1146321 * 木 9月 25 2014 Ondrej Oprala <ooprala@redhat.com> - 3.2-33.3 - CVE-2014-7169 - proper 3.2 backport - courtesy of Florian Weimer Related: #1146321 * 木 9月 25 2014 Ondrej Oprala <ooprala@redhat.com> - 3.2-33.2 - CVE-2014-7169 Resolves: #1146321 * 月 9月 15 2014 Ondrej Oprala <ooprala@redhat.com> - 3.2-33.1 - Check for fishy environment Resolves: #1141644 (snip) |
以前の記事でCentOSのレポジトリを使用してのアップデート方法を記載しましたが、こちらのほうがソースからリビルドするので確実かもしれません
RHELでCentOS repoを使用してbashのアップデート
https://www.rootlinks.net/2014/09/29/rhelでcentos-repoを使用してbashのアップデート/
【追記】
RedHat Enterprise Linux 6.xでは一応http://vault.centos.org/6.5/updates/Source/SPackages/bash-4.1.2-15.el6_5.2.src.rpm
を使用してリビルド、アップデートができました