修复Bash代码注入漏洞
时间:2019-08-20 17:58:06 来源:igfitidea点击:
Bash存在通过精心编制的环境变量注入漏洞(CVE-2014-6271(又名Shellshock)、CVE-2014-7169)。
影响大部分Linux系统,需要及时修复。
CVE-2014-6271明细
在Bash中,攻击者可以利用精心设计的环境变量覆盖或者绕过环境限制来执行shell命令。
某些服务和应用程序允许未经身份验证的远程攻击者提供环境变量,允许他们利用此问题进行攻击。
CVE-2014-7169明细
只进行CVE-2014-6271的修复还不行,
Bash仍然允许某些字符通过特制的环境变量注入到其他环境中。
攻击者可能会利用此漏洞覆盖或者绕过环境限制来执行shell命令。
如何判断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