服务公告

全部公告 > 安全公告 > Bash漏洞验证以及修复方式

Bash漏洞验证以及修复方式

2014-09-26

尊敬的华为云服务客户:

您好!华为云服务计划将于2014年9月30日(星期二)更新完所有平台镜像,以确保新老客户在创建新主机时的安全性。为保证您的主机安全,请尽快按照以下方式进行Bash漏洞修复及修复后的验证工作!

一. 漏洞简介

这个漏洞产生于Shell在处理函数定义时,执行了函数体之后的命令。利用漏洞可进行构造特殊“变量=函数”的方式绕开系统本身环境变量执行远程攻击。

二. 漏洞验证方式:

[root@localhost ~]# env x='() #<# :;#>#; echo vulnerable' bash -c "echo this is a test"

vulnerable

this is a test

[root@localhost ~]#

三. 涉及操作系统

操作系统 是否存在漏洞
CentOS系列
Ubuntu系列
Debian系列

四. 涉及业务场景

1、OpenSSH sshd使用了ForceCommand特性

ForceCommand特性用来给远程用户提供受限的命令执行能力,因此使用了此特性的如git、subversion等都会受影响。

2、Apache HTTP Server使用了modcgi和mod_cgid模块

在Apache Server启用了modcgi和mod_cgid模块时,只要CGI脚本是由bash编写,或者使用了派生的subshell都会受影响。能够产生这样的subshell的包括:

C语言的system/popen,Python的os.system/os.popen,PHP的system/exec,Perl的open/system。

五. 漏洞修复方式:

1. Ubuntu 操作系统更新bash:

apt-get update      #更新ubuntu源

apt-get install bash#安装bash最新版本

2. Centos 操作系统更新bash:

yum clean all                                        #清理本地源缓存

yum makecache                                  #重建本地缓存

yum --enablerepo=updates install bash#更新安装bash新版本

3. Novell suse 操作系统更新bash:

zypper sa Suse源地址#找到suse官方网站最新源站加入到suse源中

zypper in bash           #安装bash新版本

六. 验证漏洞:

存在漏洞:

[root@localhost ~]# env x='() #<# :;#>#; echo vulnerable' bash -c "echo this is a test"

Vulnerable                #“()#<# :;#>#;”构造一个空的函数结尾加入任何

this is a test              #一段代码将会被执行

[root@localhost ~]##表示存在漏洞

不存在漏洞:

[root@localhost ~]# 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'#修复完成之后,可以看到提示这样的函数

this is a test                                                      #不能被定义

[root@localhost ~]#

七. 补充

Novell Suse 发布补丁包
Debian 发布补丁包
CentOS 发布补丁包
ubuntu 发布补丁包
Red hat 发布补丁包

漏洞详情:点击这里

华为云服务运维团队

2014年9月26日