开发者社区 问答 正文

LinuxBash漏洞你真的打上了?没有!你认为没打上?其实打上了!

好吧,不得不说又被坑了一次,谁让咱是技术菜,只会跟着教程走呢?

昨天(9月25日)看到这个帖子: http://bbs.aliyun.com/read/176977.html?spm=5176.7189909.3.13.o6XX4l,直接吓尿了有木有,晚上修正了N台服务器,今天(9月26日)再修复另外几台服务器时,发现怎么修复都“不成功”,奇怪了。反复对比研究,终于发现了问题所在。如果你也是这样,那看下我的经验可能能减少你的弯路。置顶帖已经被编辑过,但也的确是当时置顶帖误导了我大概2个多小时,如果您看过9月25日晚的教程,参见我的经验或许也会得到额外的收获。
        




第一,先确定问题是否的确存在

敲入命令: env x='() { :;}; echo vulnerable' bash -c "echo this is a test"  
如果结果是:
vulnerable
this is a test

那问题是的确存在的,请准备修复。
        


第二,对于9月25日晚上的补丁(5.1)


如果你9月25日晚上打过补丁,补丁是:
bash-4.1.2-15.el6_5.1.x86_64
打完这个补丁后,再键入
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

但要注意的是, bash-4.1.2-15.el6_5.1.x86_64补丁是不能完全解决问题的。


所以,即便你在9月25日打过补丁,而且结果也的确是上述带有“warning”等等的值,也不代表你已经修复了这个问题!!


    

第三,关于9月26日的新补丁(5.2)


无论你是否打过 bash-4.1.2-15.el6_5.1.x86_64补丁,都可以使用命令
yum update bash来升级补丁到 bash-4.1.2-15.el6_5.2.x86_64。而要注意的是,当打完 5.2再进行测试时
输入测试命令:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"  
所得到的结果仅有:
this is a test
而没有 5.1补丁时的有一大串包含“warning”的内容!


很多人(包括我)在看到这个提示,都会认为与论坛置顶帖中的结果并不相同!都误以为补丁没打上!但其实补丁是打上的!!


  

好吧,简单总结一下


可以用命令
yum list bash
查看当前bash的版本,如果不是 bash-4.1.2-15.el6_5.2.x86_64的,那么就
yum clean all
yum makecache
yum -y update bash

升级到5.2。还不放心就升级后再用list命令查看一次。确定是5.2的,则最后测试一下:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"  
结果只要是:
this is a test
那就对! (其实结果里只要没有 vulnerable就是对的!)

说到这里,大家都明白了吗?





展开
收起
ap9761o2o 2014-09-26 18:53:43 7524 分享 版权
1 条回答
写回答
取消 提交回答
  • 欢迎进行技术分享,感谢你的支持!
    2014-09-26 19:37:23
    赞同 展开评论
问答分类:
问答标签:
问答地址: