如何针对 CVE-2014-6271 和 CVE-2014-7169 中的 bash 漏洞修补 RHEL 4?

Bob*_*own 16 bash centos rhel4 exploit

昨天和今天(2014 年 9 月 24 日)广泛报道了通过 Bash 执行远程代码的机制。http://seclists.org/oss-sec/2014/q3/650报告为 CVE-2014-7169 或 CVE-2014 -6271

出于对我来说太愚蠢无法公开解释的原因,我负责运行 RHEL 4 且没有更新订阅的服务器。我可以建立一个克隆来测试这个,但我希望有人能有一个直接的答案。

  1. Centos 4 中的 /bin/bash 是否已打补丁,还是会打补丁?
  2. 我可以将一个(大概打过补丁的)Centos 4 /bin/bash 放入我的 RHEL 系统中作为一种可以让我花几周时间的解决方法吗?(我需要到 12 月 10 日)

tst*_*or7 20

我不得不修补旧的 CentOS 4.9 服务器,所以我从 Red Hat FTP 中提取了最新的源 RPM,并添加了来自 GNU FTP 的上游补丁。步骤如下:

首先,按照http://bradthemad.org/tech/notes/patching_rpms.php 中的“设置”程序进行操作:

echo "%_topdir    /home/$(whoami)/src/rpm" > ~/.rpmmacros
mkdir -p ~/src/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS
mkdir -p ~/src/rpm/RPMS/{i386,i486,i586,i686,noarch,athlon}
Run Code Online (Sandbox Code Playgroud)

然后从您的 %_topdir 运行以下命令:

cd ~/src/rpm
wget http://ftp.redhat.com/redhat/linux/updates/enterprise/4ES/en/os/SRPMS/bash-3.0-27.el4.src.rpm
rpm -ivh bash-3.0-27.el4.src.rpm
cd SOURCES
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-017
cd ..
Run Code Online (Sandbox Code Playgroud)

使用此差异修补 SPECS/bash.spec:

4c4
< Release: 27%{?dist}
---
> Release: 27.2%{?dist}
28a29
> Patch17: bash30-017
110c111,112
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
Run Code Online (Sandbox Code Playgroud)

然后完成这些命令:

rpmbuild -ba SPECS/bash.spec
sudo rpm -Uvh RPMS/i386/bash-3.0-27.2.i386.rpm
Run Code Online (Sandbox Code Playgroud)

编辑: Red Hat Bugzilla 中的最新评论说补丁不完整。新 ID 是 CVE-2014-7169。

编辑: gnu.org 有两个额外的补丁,所以也将它们下载到同一个 SOURCES 目录中:

wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-018
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-019
Run Code Online (Sandbox Code Playgroud)

然后还编辑 SPECS/bash.spec 如下(“发布”编号可选):

4c4
< Release: 27%{?dist}
---
> Release: 27.2.019%{?dist}
28a29,31
> Patch17: bash30-017
> Patch18: bash30-018
> Patch19: bash30-019
110c113,116
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
> %patch18 -p0 -b .018
> %patch19 -p0 -b .019
Run Code Online (Sandbox Code Playgroud)


Sve*_*ven 14

RHEL 4正处于“延长寿命”阶段,安全更新将只提供给付费客户。CentOS 4自 2012 年 3 月起不再受支持。此后不再有可用的更新。

你唯一的选择是

  • 购买与 RedHat 的支持合同
  • 尝试为 Bash 构建您自己的包。
  • 或者获胜的选择:退役这台机器并使用这个安全问题作为这样做的激励。

  • 我责怪我的父母。 (6认同)
  • 谢谢你。因为我在这里用了我的真名,我无法公开解释为什么我不能在 12 月 10 日之前退役机器。同上,为什么它没有合同的三个版本。我已经赞成你的回答,谢谢。如果没有人很快想出救援,我会接受。 (4认同)
  • @BobBrown 什么?您实际上使用了我用于管理帐户的虚构名称。奇怪的。 (2认同)