1

我正在运行一个非标准版本的 Ubuntu,我尝试按照https://news.ycombinator.com/item?id=8364385的说明通过从源代码下载和重新编译来修补 shell 冲击错误。之后make install,运行bash --version显示 4.3.24(2)。但是在运行错误测试时:

env var='() { :;}; echo vulnerable' bash -c /bin/true

仍在打印vulnerable。难道我做错了什么?

4

2 回答 2

1

4.3.24 从 2014 年 8 月开始;你需要 4.3.25。

于 2014-09-25T19:26:17.153 回答
0

您很可能没有bash在正确的位置安装新的。或者你根本没有设法安装它。

make install仅当您以 root 身份运行时才有效。通常,你需要做

sudo make install

如果不这样做,您将看到一条错误消息:

$ make install

          ***********************************************************
          *                                                         *
          * GNU bash, version 4.3.25(1)-release (x86_64-unknown-linux-gnu)
          *                                                         *
          ***********************************************************

mkdir -p -- /usr/local/share/doc/bash
mkdir: cannot create directory ‘/usr/local/share/doc/bash’: Permission denied
make: *** [installdirs] Error 1

这意味着该软件未安装。(您只需要重做安装步骤。)

此外,默认情况下,bash 构建文件会将您的新 bash 安装为/usr/local/bin/bash,而您的旧bashbash将继续存在于/usr/bin/bash. 通过键入以下内容检查正在运行的 bash:

which bash
于 2014-09-25T19:38:51.737 回答