阿里云公布的补丁已被绕过,可以继续实施攻击,希望阿里云工程师赶紧继续推出解决方案...
漏洞验证
执行如下命令
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果输出如下则表明系统受影响。
vulnerable
this is a test
升级最新补丁后,执行如下命令:
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable"
如果输出如下则仍然受影响
still vulnerable
漏洞影响
漏洞影响Redhat、CentOS、Debian、Ubuntu等Linux发行版,影响的程序包括使用mod_cgi执行的Apache服务器,rsync及git服务器,调用如下函数的程序system/popen in C, by os.system/os.popen in Python, system/exec in PHP等。
漏洞原因分析
当bash执行fork的时候,会把函数定义存放在环境变量中,因此bash初始化时会解析每个环境变量的内容,如果以() {开头,则会当做函数处理,官方最新修复补丁已经被绕过。C、Python、PHP等语言中的函数受影响是因为这些函数会使用/bin/sh执行相应的内容,现在大部分Linux发行版/bin/sh只是一个到/bin/bash的符号链接。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。