2014年10月8日

Linux Bash严重漏洞最终修复方案

之前阿里云有放出修复Bash漏洞的方案,不过据说不能彻底解决问题,现在放出一个最终修复方案来了。

特别提醒:Linux 官方已经给出最新解决方案,已经解决被绕过的bug,建议您尽快重新完成漏洞修补。openSUSE 镜像已经给出修复方案了。

【已确认被成功利用的软件及系统】
所有安装GNU bash 版本小于或者等于4.3的Linux操作系统。

【漏洞描述】
该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。

【漏洞检测方法】
漏洞检测命令:

env -i  X='() { (a)=>\' bash -c 'echo date'; cat echo

修复前
输出:
当前系统时间

使用修补方案修复后
输出
date
(备注:输出结果中见到”date”字样就修复成功了。)

特别提示:该修复不会有任何影响,如果您的脚本使用以上方式定义环境变量,修复后您的脚本执行会报错。
【建议修补方案 】

请您根据Linux版本选择您需要修复的命令, 为了防止意外情况发生,建议您执行命令前先对Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。

centos:(最终解决方案)
yum clean all
yum makecache
yum -y update bash

ubuntu:(最终解决方案)
apt-get update
apt-get -y install –only-upgrade bash

debian:(最终解决方案)
7.5 64bit && 32bit
apt-get update
apt-get -y install –only-upgrade bash

6.0.x 64bit
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_amd64.deb && dpkg -i bash_4.1-3+deb6u2_amd64.deb

6.0.x 32bit
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_i386.deb && dpkg -i bash_4.1-3+deb6u2_i386.deb

aliyun linux:(最终解决方案)
5.x 64bit
wget http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/bash-3.2-33.el5_10.4.x86_64.rpm && rpm -Uvh bash-3.2-33.el5_10.4.x86_64.rpm

5.x 32bit
wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm && rpm -Uvh bash-3.2-33.el5_10.4.i386.rpm

opensuse:(最终解决方案)

zypper clean
zypper refresh
zypper update -y bash