之前@PengEdy 同学在 https://ruby-china.org/topics/21720 里提到最近很危险的 CVE-2014-6271,我在他回复里也说了,之前的 patch 并没有完全修复,从而产生了另一个漏洞编号。但不一定能引起足够的重视,而且现在新的检查方法和解决方法都有了,所以我还是在这里重新发个帖子提醒一下大家吧
验证方法的话,@PengEdy 说过了 CVE-2014-6271 的方法,CVE-2014-7169 的方法有所不同:
有问题的会是这样,最下边有Fri Sep 26 11:49:58 GMT 2014
这样的时间。
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014
而没有的则是没有那个时间的,比如:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
就在几小时前,这个漏洞已经被修复,基本上只要把 bash 升到最新就可以解决。比如 ubuntu 的话,可以用sudo apt-get update && sudo apt-get install bash
来升级,10.04 是 4.1-2ubuntu3.2,12.04 是 4.2-2ubuntu2.3,14.04 是 4.3-7ubuntu1.3。
强烈建议大家最好都检查一下,甚至不管有没有问题都把 bash 升级一下
参考: https://access.redhat.com/articles/1200223 (最好把这篇文章看一下,很详细,我写的基本都是从这里搬过来的)
PS:刚刚把全部的服务器都更新完了,可以放心睡了。创业不容易啊,大家共勉