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

Joh*_*den 24 linux security debian shellshock

测试命令

x='() { :;}; echo vulnerable' bash
Run Code Online (Sandbox Code Playgroud)

显示我的Debian 8 (Jessie) 安装很容易受到攻击,即使是最新的更新也是如此。研究表明,有一个针对稳定和不稳定的补丁,但该测试未打补丁。

我认为该补丁将在几天内进行测试,但这实际上看起来令人讨厌,令人怀疑。有什么方法可以从不稳定中获取软件包并安装它而不会破坏我的系统?升级到不稳定看起来会导致比它解决的问题更多。


根据 Bob 的说法,还有第二个 Shellshock 漏洞,该漏洞已在第二个补丁中修复。对它的测试应该是:

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

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

要为Jessie解决此问题,请从不稳定版获取最新的 Bash 并使用dpkg -i.

Jemenake 提供

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

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

你可以遵循:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb
Run Code Online (Sandbox Code Playgroud)

安装它。

如果您的Jessie系统需要进一步的来自不稳定的补丁,这显然是要走的路(mutatis mutandis)。

Tom*_*mon 25

我已经为周一发布的其他 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
Run Code Online (Sandbox Code Playgroud)

该命令显示系统易受攻击,因此请运行更新。

apt-get update && apt-get -y upgrade
Run Code Online (Sandbox Code Playgroud)

再次测试。

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

还是很脆弱的。

apt-get install -y bash
Run Code Online (Sandbox Code Playgroud)

再次测试。

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
Run Code Online (Sandbox Code Playgroud)

编辑:发布附加补丁后,输出已更改。

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

好极了!固定的。这应该适用于其他版本,但我没有在 12.04 之后对其进行测试。

另外,runamok 在下面的回复效果很好,所以给他一个赞吧!

  • 只是`apt-get update && apt-get install -y bash` 似乎工作。 (6认同)

小智 16

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
Run Code Online (Sandbox Code Playgroud)

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

通过:linuxquestions


小智 5

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

dpkg -i
Run Code Online (Sandbox Code Playgroud)

  • 如果您在 GUI 中运行浏览器,则上面的链接很好。如果您在 shell 会话中运行 lynx,则更少。如果您想要一些可以直接粘贴到命令行中以获取它的东西,请尝试:`wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb` 它将为您的盒子获得正确的架构。 (3认同)