今天估计各大消息都在报这个漏洞,可能有些人看到有修复就放松了。目前来看,事情没那么简单。

CVE-2014-6271

第一个漏洞,编号为CVE-2014-6271。相应的dsausn

具体的文章可以看这里

简单来说,当bash执行时看到有变量定义了一个函数,函数尾部又剩余了部分代码。会直接把剩余代码执行了。导致简单的变量定义动作有机会执行任意代码。

对于未修补的系统,执行以下代码出现以下提示:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

注意echo vulnerable应当不被执行的。

修复的系统则是以下表现:

$ 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

CVE-2014-7169

第二个漏洞,编号为CVE-2014-7169

这个漏洞是第一个漏洞没有修复完全导致的,最麻烦的是,这个漏洞没有修复,细节却满天飞了。

表现如下:

$ env X='() { (a)=>\' sh -c "echo date"; cat echo
sh: X: line 1: syntax error near unexpected token `='
sh: X: line 1: `'
sh: error importing function definition for `X'
Wed Sep 24 23:25:58 PDT 2014

结论和建议

尽量不要暴露bash,能关就关,不行的自求多福吧。