Apache爆HashTable碰撞拒绝服务漏洞,Java、PHP、Asp.Net及v8引擎等都受影响
Apache Tomcat 团队近日发布了一个安全公告,提示用户注意一个 Java 哈希表(HashTable)中的拒绝服务漏洞。
(来自:湖北教育考试网)
这一漏洞名为 Denial of Service through hash table multi-collisions(通过对哈希表使用多碰撞技术实现拒绝服务),已由安全研究公司N.runs 发布。目前,除 Java 外,PHP5、Asp.Net 以及 Java v8 引擎中都存在该漏洞;PHP4、Python (来自:湖北教育考试网)及 Ruby 则因版本不同或可能受影响,取决于服务器代码运行于 32 位或 64 位机器。Perl 及 CRuby 1.9 不受其影响。
Apache Tomcat 表示,由于 Tomcat 中使用了哈希表来存储 HTTP (来自:湖北招生网www.edu-hb.com)请求参数,因此将受该漏洞影响。鉴于 Oracle 表态不会在 JRE 中对该漏洞进行修复((来自:湖北教育信息网www.edu-hb.com)但将提供一个新的 GlassFish 服务器版本),因此 Apache 提供了一个变通方案。
Apache 的方案是在 Tomcat 中增加一个新的选项 maxParameterCount,用来限制单个请求中的最大参数(来自:湖北招生考试网www.edu-hb.com)量。参数默认值设为 10000,确保既不会对应用程序造成影响(对多数应用来说已经足够),也足以减轻 DoS 攻击的压力。
目前,(来自:湖北教育网www.edu-hb.com)这一解决方法在 Tomcat 7.0.23 和6.0.35版本中业已实现;即将发布的5.5.35中也会应用这一方案。另外,Tomcat 表示,若使用早期版本的 Tomcat,可以通过限制 maxPostSize 大小为 10KB 左右来解决此问题。
关于此漏洞的详细信息:http://www.nruns.com/_downloads/advisory28122011.pdf。
根据官方文档http://tomcat.apache.org/tomcat-6.0-doc/config/http.html,我们可以看出,tomcat6在默认状态下最大的post请求是2M
maxPostSize
The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than or equal to 0. If not specified, this attribute is set to 2097152 (2 megabytes).
如果需要修改的,就需要找到server.xml文件
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxPostSize="0" />
maxPostSize: 0 表示不限制
其中单位为:byte