最近,有关于“CVE-2014-6271”(参见USN-2362-1)的消息,这是 Bash 中的一个漏洞。我怎么知道我是否受此影响,我该如何解决,我为什么要关心?
由于其范围和严重性,这被设计为针对此漏洞的规范答案。
这是我用来检查我的 bash shell 是否存在 Shellshock 错误的命令:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Run Code Online (Sandbox Code Playgroud)
任何人都可以详细解释命令吗?
我正在做 Shellshock 实验室,本教程提供了一种通过环境变量将函数传递给子进程的方法:
$ foo='() { echo "hello"; }'
$ export foo
$ /bin/bash
$ foo
hello
Run Code Online (Sandbox Code Playgroud)
然而,当我在 Ubuntu 20.04 上尝试这个时,foo
并没有转换为子进程中的函数。
$ foo='() { echo "hello"; }'
$ export foo
$ /bin/bash
$ foo
Command 'foo' not found, did you mean: ...
Run Code Online (Sandbox Code Playgroud)
有什么我错过的吗,或者这种方法只适用于某些版本的 bash?
我想修复Shellshock问题,通常的解决方案是更新 Ubuntu。
如何只更新 Bash 而不必重新启动?