如何判断bash是否存在此问题

诊断命令1

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

如果输出包含vulnerable,则说明使用的bash版本存在漏洞。

诊断命令2

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

如果输出包含vulnerable,则表明系统存在漏洞。

诊断命令3

运行下面的命令以进行进一步诊断。

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>' bash -c "echo date"; cat /tmp/echo

如果输出中有日期和时间的信息并创建了一个/tmp/echo文件,则说明系统存在漏洞。

bash漏洞修复建议

建议更新或者升级到新的bash版本。
所有主要的Linux发行版和存储库都已经提供了更新版本的bash包,并提供了这个问题的补丁。

在RHEL 5,6,7/CentOS 5,6,7/Amazon Linux AMI中

使用下面的命令

# yum clean all
# yum update bash

或者

# yum clean all
# yum upgrade bash

在Ubuntu 10.x/12.x/14.x中

使用下面给定的命令

sudo apt-get update && sudo apt-get install --upgrade-only bash

或者

sudo apt-get update && sudo apt-get install bash
修复Bash代码注入漏洞

Bash存在通过精心编制的环境变量注入漏洞(CVE-2014-6271(又名Shellshock)、CVE-2014-7169)。
影响大部分Linux系统,需要及时修复。

CVE-2014-7169明细

只进行CVE-2014-6271的修复还不行,
Bash仍然允许某些字符通过特制的环境变量注入到其他环境中。
攻击者可能会利用此漏洞覆盖或者绕过环境限制来执行shell命令。

CVE-2014-6271明细

在Bash中,攻击者可以利用精心设计的环境变量覆盖或者绕过环境限制来执行shell命令。
某些服务和应用程序允许未经身份验证的远程攻击者提供环境变量,允许他们利用此问题进行攻击。

日期:2019-08-20 17:58:06 来源:oir作者:oir