跳到主要内容

超危

Oracle JRE Expression.execute()和SunToolkit.getField()远程代码执行漏洞

2012-08-28 00:00:00 公开 ,2026-08-06 05:08:19 更新

  • 关键漏洞
  • CISA KEV
  • APT漏洞
  • 远程
  • 公开PoC
  • 无需认证
CWEs:
CWE-284 (Improper Access Control)
SSVC:
可利用状态:已被积极利用攻击自动化:是技术影响评估:全部 2022-03-02 08:00:00

风险信息

CVSS v2 向量
AV:N/AC:L/Au:N/C:C/I:C/A:C
CVSS v2 风险值
10
CVSS v3.1 向量
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 风险值
9.8

详细信息

漏洞类型
其他
漏洞描述
Oracle Java SE 7 Update 6及更早版本中的Java Runtime Environment(JRE)组件中存在多个漏洞,远程攻击者可借助特制的小程序绕过SecurityManager限制,通过(1)使用com.sun.beans.finder.classfindclass并利用forName方法的异常进行访问,来执行任意代码限制来自任意包(如sun.awt.SunToolkit)的类,然后(2)使用受信任直接调用方的反射来利用getField方法访问和修改私有字段,正如2012年8月在野利用Gondzz.class和Gondvv.class时那样。
修复建议
1、应用更新这个问题在java 7更新7中得到解决。http://www.oracle.com/technetwork/java/javase/downloads/jre7u7-downloads-1836441.html为了防止将来的java漏洞,考虑以下解决方案: 2、在web浏览器中禁用Java从Java 7 Update 10开始,可以通过Java控制面板小程序禁用web浏览器中的Java内容。有关更多详细信息,请参阅Java文档。http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/client-security.html#disable如果无法升级到java 7更新10或更高版本,请考虑以下解决方案: 3、禁用Java插件和Java部署工具包禁用Java浏览器插件和Java部署工具包插件可防止恶意网页利用此漏洞进行攻击。 (1)Apple Safari:如何在Safari中禁用Java web插件请参考https://support.apple.com/kb/HT5241 (2)Firefox:如何关闭Java小程序。确保同时禁用Java插件和Java部署工具包插件,请参考https://support.mozilla.org/en-US/kb/How%20to%20turn%20off%20Java%20applets(3)Chrome:有关如何在Chrome中禁用Java,请参阅Chrome文档的禁用特定插件部分(https://support.google.com/chrome/bin/answer.py?hl=en&answer=142064)。默认情况下,Chrome将对插件进行分组,因此单击Java的禁用将同时禁用Java插件和Java部署工具包插件。但是,如果单击详细信息以展开插件的显示,请确保同时禁用Java插件和Java部署工具包插件。 (4)Opera:通过选择Opera->Settings->Preferences…->将插件配置为仅按需执行高级->仅在需要时启用插件 (5)Internet Explorer:禁用Internet Explorer的Java插件和Java部署工具包。禁用Internet Explorer的Java插件比使用其他浏览器要复杂得多。网页调用Java小程序有多种方式,配置Java插件支持也有多种方式。微软发布了KB article 2751647(http://support.microsoft.com/kb/2751647),其中描述了如何禁用Internet Explorer的Java插件。然而,由于Internet Explorer中可以调用Java的方式很多,指导并没有完全禁用Java。如果您希望禁用其他区域中的<applet>元素,可以修改注册表文件以满足需要。有关详细信息,请参阅Microsoft KB article 182569(http://support.microsoft.com/kb/182569)。 4、防止Internet Explorer自动打开JNLP文件JavaWebStart是一种从Web浏览器启动Java应用程序和小程序的技术。除了从JavaWebStart ActiveX控件调用外,还可以通过打开JNLP文件来启动JavaWebStart。Java installer for Windows将Internet Explorer配置为在不提示用户的情况下自动打开JNLP文件。通过将以下文件导入为.REG文件,可以将此行为还原为提示用户的更安全选项: [HKEY_CLASSES_ROOT\JNLPFile] @=JNLP File EditFlags=hex:00,00,00,00 此外,如果希望在插件文件级别禁用Internet Explorer的java插件,还可以考虑以下步骤: (1)删除下一代Java插件文件下一代Java插件是Java插件的更新版本,它在web浏览器的进程空间之外执行。注意,这意味着当通过下一代Java插件调用时,Java在浏览器的任何限制之外执行,例如DEP、受保护模式或其他沙箱。可以通过删除jp2iexp.dll文件的任何实例来禁用下一代Java插件。此文件在Windows平台上的常见位置包括:C:\ProgramFiles\Java\jdk{version}\jre\bin C:\ProgramFiles\Java\jre7\bin C:\Program Files\Oracle\JavaFX {version}Runtime\bin(2)删除Java插件文件如果禁用下一代Java插件选项,Internet Explorer将使用传统的Java插件,该插件在浏览器的进程空间内运行。可以通过删除npjpi{version}.dll文件的任何实例来禁用Java插件。例如,Java 7 Update 6提供了npjpi170_06.dll。此文件在Windows平台上的常见位置包括:C:\ProgramFiles\Java\jdk{version}\jre\bin C:\ProgramFiles\Java\jre7\bin C:\Program Files\Oracle\JavaFX {version}Runtime\bin 5、禁用Safari中的下载后打开安全文件默认情况下,Mac OS X上的Safari配置为在下载后自动打开安全文件,这也会自动发生。Java JLNP文件被认为是安全的。禁用下载后打开安全文件选项,如保护Web浏览器文档中所述。这将有助于防止自动利用此漏洞和其他漏洞。请注意,默认情况下,OSX不提供Java7,但是Oracle提供了Java7作为可选下载。 6、卸载Java由于在Internet Explorer中使用7 Update 10之前的Java版本禁用Java是不切实际的,因此可卸载Java以防止此漏洞。 7、为不同的活动使用不同的浏览器缓解网络浏览风险的一种有效方法是为不同的在线活动使用不同的浏览器。例如,如果您进行网上银行业务,请选择用于银行业务的浏览器,而不要选择其他浏览器。这有助于将恶意网页干扰银行活动的风险降至最低。同样的概念也适用于Java。如果您使用需要Java的网站,请选择并配置浏览器以启用Java,并且仅使用该浏览器访问该资源。其他浏览器应该禁用Java,如上所述。这有助于将Java暴露于不受信任的web站点的风险降至最低。 8、不要从不受信任的源访问Java小程序攻击者必须向易受攻击的系统发送恶意Java小程序,才能利用此漏洞。这包括打开JNLP文件,因为Java Web Start可用于执行Java小程序。通过仅从已知和可信的源访问Java小程序,可以减少被利用的机会。 9、使用NoScript将Mozilla Firefox NoScript扩展用于可以运行脚本和访问已安装插件的白名单网站将缓解此漏洞。

参考链接