从源代码修补bash shell shock bug

时间:2014-09-25 19:20:47

标签: bash shellshock-bash-bug

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

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

仍在打印vulnerable。我做错了吗?

2 个答案:

答案 0 :(得分:1)

4.3.24自2014年8月起;你需要4.3.25。

答案 1 :(得分: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,而旧版bash将继续存在于/usr/bin/bash中。通过键入以下内容检查正在运行的bash:

which bash