GNU Bash 环境变量远程命令执行漏洞(CVE-2014-6271) (Alert2014-08)
2014-09-25
描述:
CVE ID:CVE-2014-6271受影响的软件及系统:
====================
GNU Bash <= 4.3
综述:
======
GNU Bash(Bourne again shell)类似UNIX的shell,广泛使用在Linux系统内,最初的功能仅是一个简单的基于终端的命令解释器。
GNU Bash 4.3及之前版本在处理某些构造的环境变量时存在安全漏洞,可能允许攻击者远程执行任意命令。
强烈建议受影响用户及时安装厂商的补丁进行升级。
分析:
======
GNU Bash 4.3及之前版本在处理某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行。
此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用bash作为解释器的应用等。
目前认为使用mod_php/mod_python/mod_perl的Apache httpd不受此问题影响。
测试方法:
本地验证bash是否受影响的方法:$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
如果显示上述信息,则受影响。
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for \`x'
如果显示上述信息,则不受影响。
厂商状态:
==========
GNU
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.gnu.org/software/bash
http://ftp.gnu.org/gnu/bash/
各大Linux发行版也已经提供了相关补丁,请及时升级。
附加信息:
==========
1. https://bugzilla.redhat.com/show_bug.cgi?id=1141597
2. https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
3. https://bugzilla.redhat.com/attachment.cgi?id=938976
4. http://www.nsfocus.net/vulndb/27942