如何修复 debian testing/jessie 中的 Shellshock 安全漏洞?

如何修复 debian testing/jessie 中的 Shellshock 安全漏洞?

测试命令

x='() { :;}; echo vulnerable' bash

表明我的Debian 8(Jessie) 安装存在漏洞,即使安装了最新更新也是如此。研究表明,稳定版和不稳定版都有补丁,但测试版尚未打上补丁。

我认为补丁将在几天内进入测试阶段,但这看起来确实很严重,值得担心。有没有办法从不稳定版本中获取软件包并安装它而不会破坏我的系统?升级到不稳定版本似乎会导致比解决的问题更多的问题。


Bob 表示,还有第二个 Shellshock 漏洞,已在第二个补丁中修复。该漏洞的测试如下:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

但我对 Bash 的熟练程度不够,无法弄清楚这意味着什么或为什么这是一个问题。无论如何,它做了一些奇怪的事情,这在 64 位系统上被 bash_4.3-9.2_amd64.deb 阻止了,在编辑时,它处于稳定和不稳定状态,但在杰西/测试。

修复此问题杰西,从不稳定获取最新的 Bash 并使用 安装它dpkg -i

Jemenake 提供

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

作为命令,它将为您的机器获取 4.3-9.2 版本。

您可以按照以下步骤操作:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

安装它。

如果您需要来自不稳定系统的进一步补丁杰西系统,这显然是可行的方法(予以适当修改)。

答案1

通过以下方式从不稳定网站下载软件包此链接。您也可以在那里检查依赖项,尽管看起来不稳定的 bash 具有与测试中的 bash 相同的依赖项。使用以下命令安装下载的 deb。

dpkg -i

答案2

我已针对周一发布的其他 bash 修复程序编辑了这个答案。

对于 Ubuntu 12.04,我运行了更新,但也必须运行 bash 的安装才能消除漏洞。

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

该命令显示系统存在漏洞,因此请运行更新。

apt-get update && apt-get -y upgrade

再次测试。

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

仍然脆弱。

apt-get install -y bash

再次测试。

root@host:/home/ubuntu# 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

编辑:发布附加补丁后,输出发生了变化。

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

耶!已修复。这应该适用于其他版本,但我还没有测试过 12.04 以上的版本。

另外,下面 runamok 的回复很有效,所以给他点赞吧!

答案3

Debian 6.0(Squeeze)的替代方案,无需从 Debian 7(Wheezy)获取软件包:

使用已将补丁反向移植的 LTS 安全存储库。

将其添加到/etc/apt/sources.list

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

然后运行apt-get update && apt-get install bash

通过:Linux问题

答案4

我把它修好了黑苹果经过:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 

相关内容