在 Java 最新修订发布几天后,安全研究员 Adam Gowdiak 就发现了另一个 Java 的漏洞。在附带的披露文章中,Gowdiak 表示 Reflection API 缺陷会影响 Java SE 7 的全部版本,而且“可以用来在目标系统上达到完全绕过 Java 安全沙箱的目的”。该漏洞同时在插件/JDK 软件中存在,而服务器 JRE 也未能幸免。通过 Web 浏览器暴露的漏洞确实要求用户“在看到安全性警告窗口的时候,接受执行潜在地恶意 Java 应用的风险,”Gowdiak 写道。
Gowdiak 宣称他的公司 Security Explorations 已经将漏洞报告及概念验证代码发送给 Oracle。
Security Explorations 最早在 2012 年 4 月与 Oracle 联系,特别向其通报了 Java SE 7 以及 Reflections API 中的安全问题。然而 Gowdiak 认为“看起来,Oracle 重点专注于处理‘许可的’类空间中潜在的 Reflection API 危险调用”——也就是不受信任的 applet 或 Web 启动应用程序这样的程序能够访问的类。
由于这一最新漏洞同时也影响服务器 JRE,这让事情变得有一些不寻常。上周,Oracle 发布了一个补丁,修复了其他 42 处缺陷,其中 19 处在公司用来评估的 CVSS 评测中得到了 10 分(最严重)。不过其中大部分漏洞是针对客户端 Java 的,而且只能够通过不受信任的 applet 或是 Web 启动应用程序来利用这些漏洞。
针对这些漏洞的补丁来得很及时。从一篇 Timo Hirvonen 发表的短博文来看,或许是因为漏洞已经被添加到 CrimeBoss、Cool 和 CritX 攻击工具,以及渗透测试产品 Metasploit 上面,使用远程代码执行漏洞之一(CVE-2013-2423)的攻击已经出现。RedKit 也曽被报导过,但 Hirvonen 向 InfoQ 确认这是由F-Secure 的自动工具错误报告所致。
在该新闻之后,Java 在安全方面度过了艰难的几个月。在数月的负面报道之后,Oracle 最近委任 Java 安全主管 Milton Smith,Smith 在 1 月份的一个电话会议中声明Oracle 将专注于修复问题并增强与社区成员的交流。
继黑客利用 Java 中的 0day 缺陷对多家公司进行攻击后(这些公司包括 Apple、Facebook 和 Microsoft,或许还有 Twitter),Java 再次成为了头条新闻。
Oracle 需要集中更多的资源,以应对接下来与 Java 的安全问题进行的斗争。这也被视作 JDK 8 的发布推迟到 2014 年的一个原因。