安全公告

Microsoft 安全公告 MS02-069 - 严重

Microsoft VM 中的缺陷可能导致系统泄露(810030)

更新时间:2009 年 7 月 1 日

版本: 2.0

最初发布: 2002 年 12 月 11 日

总结

谁应阅读此公告: 使用 Microsoft® Windows® 的客户。

漏洞的影响: 八个漏洞,其中最严重的漏洞将使攻击者能够控制其他用户的系统。

最大严重性分级: 严重

建议: 客户应安装 Microsoft VM 的内部版本 3809 或更高版本,如下所示。

受影响的软件:

  • Microsoft 虚拟机(Microsoft VM)的版本由内部版本号标识,可以使用 JVIEW 工具确定,如常见问题解答中所述。 Microsoft VM 的所有内部版本(包括内部版本 5.0.3805)都会受到这些漏洞的影响。

最终用户公告: 此公告的最终用户版本位于: https:

常规信息

技术详细信息

技术说明:

Microsoft VM 是 Win32® 操作环境的虚拟机。 大多数版本的 Windows 中随附的 Microsoft VM(常见问题解答中提供了完整列表),以及在大多数版本的 Internet Explorer 中提供。

Microsoft VM 的新版本可用,其中包括以前发布的所有 VM 修补程序,以及 8 个新报告的安全问题的修补程序。 所有新问题的攻击途径可能相同。 攻击者将创建一个网页,该网页在打开时会利用所需的漏洞,并在网页上托管该网页,或以 HTML 邮件的形式将其发送给用户。

新报告的安全问题如下所示:

  • 一个安全漏洞,通过该漏洞,不受信任的 Java 小程序可以访问 COM 对象。 根据设计,COM 对象只能供受信任的 Java 程序使用,因为它们公开的功能。 COM 对象可用于提供攻击者可以控制系统的功能。
  • 尽管存在不同的根本原因,但存在一对漏洞,其效果相同,即掩盖小程序代码库的实际位置。 根据设计,驻留在用户存储或网络共享上的 Java 小程序对它所在的文件夹及其下的所有文件夹具有读取访问权限。 漏洞提供一个小程序在其代码库上可能歪曲其代码库的位置的方法,以指示它驻留在用户的本地系统或网络共享上。
  • 使攻击者能够构造 URL 的漏洞,当分析时,该 URL 会从一个网站加载 Java 小程序,但错误地将其解释为属于另一个网站。 结果是攻击者的小程序将在其他站点的域中运行。 提供给用户的任何信息都可以中继回攻击者。
  • 由于 Microsoft VM 不会阻止小程序调用 JDBC API(一组提供数据库访问方法的 API)而生成的漏洞。 根据设计,这些 API 提供添加、更改、删除或修改数据库内容的功能,仅受用户权限的约束。
  • 攻击者可以通过该漏洞暂时阻止加载和运行指定的 Java 对象。 标准安全管理器(称为标准安全管理器)的旧式安全机制提供对 Java 小程序施加限制的功能,包括阻止它们完全运行。 但是,VM 无法充分规范对 SSM 的访问,因此攻击者的小程序可以将其他 Java 对象添加到“禁止”列表中。
  • 攻击者可以通过该漏洞在其本地系统上了解用户的用户名。 漏洞结果是因为一个特定的系统属性 user.dir 不应提供给不受信任的小程序,但通过缺陷是。 虽然知道用户名本身不会构成安全风险,但对于侦察目的可能很有用。
  • 导致漏洞的原因是 Java 小程序可以执行另一个 Java 对象的不完整实例化。 这样做的效果是导致包含的应用程序 - Internet Explorer - 失败。

缓解因素:

所有漏洞共享一对常见的缓解因素:

  • 如果用户在攻击者的网站呈现的 Internet Explorer 安全区域中禁用了 Java 小程序,则会阻止基于 Web 的攻击途径。
  • 如果用户正在运行多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

COM 对象访问漏洞:

  • 漏洞仅表示机会目标。 攻击者无法确保敏感数据位于系统内存、Cookie、剪贴板或其他位置。

CODEBA标准版欺骗漏洞:

  • 攻击者对文件(包括远程共享上的文件)的访问仅限于用户。 如果用户只有有限的权限,则攻击者也拥有权限。

域欺骗漏洞:

  • 仅当用户访问攻击者站点时访问了第三方站点,才能利用该漏洞。
  • 利用漏洞的效果仅适用于当前 Web 会话。

JDBC API 漏洞:

  • 若要利用此漏洞,攻击者需要知道他或她想要访问的每个数据源的名称。 在大多数情况下,这要求攻击者对用户的网络有内部知识。
  • 攻击者仅获取用户对数据源的权限。 例如,如果用户仅对特定数据库具有读取访问权限,则攻击者也是如此。

标准安全管理器访问漏洞:

  • 利用此漏洞的效果只会在当前浏览器会话期间保留。
  • 该漏洞不提供修改小程序功能的方法, 只阻止其运行。

User.dir 暴露漏洞:

  • 知道用户的用户名本身不会使攻击者对用户采取任何操作。 学习此信息的唯一价值是出于侦察目的,希望将来使用这些信息不受指定的攻击。

不完整的 Java 对象实例化漏洞:

  • 此漏洞只会使攻击者能够导致 Internet Explorer 失败 - 它不会使攻击者导致 Windows 本身或任何其他应用程序失败。
  • 用户可以通过重启浏览器来还原正常操作。

严重性分级:

严重性分级
COM 对象访问漏洞 严重
CODEBA标准版欺骗漏洞 重要
域欺骗漏洞 中等
JDBC API 漏洞 中等
标准安全管理器访问漏洞
User.dir 公开漏洞
不完整的 Java 对象实例化漏洞

上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。

漏洞标识符:

测试的版本:

Microsoft 测试的 VM 生成 5.0.3167,以评估它们是否受这些漏洞的影响。 以前的版本不再 受支持,可能会或不受这些漏洞的影响。

常见问题解答

新 VM 生成消除了哪些安全漏洞?
此 VM 版本包括以前发布的所有安全修补程序,以及修复八个新报告的安全漏洞:

  • 一个漏洞,使攻击者能够完全控制其他用户的系统。
  • 一对漏洞,使攻击者能够读取用户系统上的文件或网络上共享用户有权访问的文件。
  • 在异常情况下,攻击者可以通过漏洞将某个程序从他或她的网站插入到第三方网站上。
  • 在异常情况下,攻击者可以通过异常条件访问数据库,以用户的身份访问数据库。
  • 攻击者可以通过该漏洞暂时阻止其他网站在特定用户的系统上正常运行。
  • 使攻击者能够进行侦查的漏洞,在针对用户进行后续攻击时可能很有用。
  • 如果用户访问了攻击者的网站,则可能导致 Internet Explorer 失败的漏洞。

什么是 Microsoft VM?
Microsoft 虚拟机(Microsoft VM)使 Java 程序能够在 Windows 平台上运行。 Microsoft VM 包含在大多数版本的 Windows 和 Internet Explorer 中。 此处的漏洞会影响拥有 Microsoft VM 的所有客户。

我不知道 Microsoft VM 是否已安装在我的系统上。 如何判断?
如果使用的是以下任一版本的 Windows,则肯定已安装 Microsoft VM:

  • Microsoft Windows 95
  • Microsoft Windows 98 和 98标准版
  • Microsoft Windows Millennium
  • Microsoft Windows NT 4.0,从 Service Pack 1 开始
  • Microsoft Windows 2000
  • Microsoft Windows XP,从 Service Pack 1 开始

Microsoft VM 还作为多个版本的 Internet Explorer 和其他产品的一部分提供,并通过按需安装并入 Windows XP。 如果怀疑是否已安装它,请执行以下操作:

  1. 选择“开始”,然后选择“运行”。
  2. 打开命令框,如下所示:
    • 如果运行的是 Windows 98 或 Windows Millennium,请键入“command”(不含引号),然后按 Enter 键。
    • 如果运行的是 Windows NT 4.0、Windows 2000 或 Windows XP,请键入“cmd”(不含引号),然后按 Enter 键。
  3. 在生成的命令框中,键入“Jview”(不含引号)。 如果程序运行,则已安装 Microsoft VM。 如果收到错误,指出该名称不存在程序,则不会。

这是 Microsoft VM 的新版本吗?
是的,Microsoft VM 内部版本 3809 是 Microsoft VM 的新版本。

如何判断我使用的 Microsoft VM 版本?
下面介绍如何确定所使用的内部版本号:

  1. 选择“开始”,然后选择“运行”。
  2. 在 Windows 95、98 或 Me 上,键入“command”(不含引号)。 在 Windows NT 4.0、2000 或 XP 上,键入“cmd”(同样,没有引号)。 按 Enter 键。
  3. 在结果命令框中,键入“Jview”(不含引号),然后按 Enter 键。
  4. 在结果列表的最上一行中,应会看到 x.yy.zzzz 形式的版本号。 最后四位数字是版本号。

一旦我知道版本号,我该怎么做?
使用下表确定正确的操作。

如果版本号为< 。 。 你应该。 。 。
3805 或更少 应用 Microsoft VM 内部版本 3809。 (请参阅该部分, 修补程序可用性。)
3805 加上 MS02-052 修补程序于 2002 年 9 月发布 应用 Microsoft VM 内部版本 3809。 (请参阅该部分, 修补程序可用性。)
3809 或更高版本 不执行任何操作。 你正在使用已受这些漏洞保护的版本。

COM 对象访问漏洞 (CAN-2002-1257):

此问题的范围是什么?
此漏洞可能使攻击者的 Java 小程序能够控制其他用户的系统。 这将使攻击者能够在用户系统上执行任何所需的操作;例如,攻击者可以在用户的系统上添加、删除或更改数据;与网站通信;加载和运行程序;重新格式化硬盘驱动器,等等。 该漏洞可以通过网站或 HTML 邮件进行利用,但如果用户正在运行多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
漏洞结果是因为无法访问 COM 对象的不受信任的 Java 小程序可以访问 COM 对象,从而使计算机上的各种操作得以执行。

什么是 COM 对象?
组件对象模型(COM)是一种 Microsoft 技术,使开发人员能够生成可由其他应用程序使用的单一用途软件模块(称为组件)。 例如,开发人员可能会生成显示特定类型的对话框的 COM 对象。 执行此操作的值是,显示该类型的对话框所需的任何其他应用程序都可以调用 COM 对象,而不是实现对话框本身。

COM 对象与 Java 有何关系?
Java 程序(如其他类型的应用程序)可以使用 COM 对象。 Microsoft VM 提供了许多“COM 包装器”,使 Java 程序能够调用 COM 对象。

早期版本的 Microsoft VM 如何公开 COM 功能?
根据设计,只有受信任的 Java 程序才能使用 COM 对象 -- 它们可以公开强大的功能,并且不应允许不受信任的 Java 小程序执行此操作。 尽管 Microsoft VM 具有安全检查来防止 Java 小程序调用 COM 对象,但有一种调用它们的方法绕过检查。

此漏洞会使攻击者能够执行哪些操作?
该漏洞可以使 Java 小程序调用 COM 对象。 执行此操作的具体效果取决于攻击者使用的特定 COM 对象。 但是,COM 对象可用于执行各种操作,包括攻击者调用时构成危险的对象。 例如,ActiveX 控件(即 COM 对象)默认存在,允许在用户的系统上操作数据、要运行的程序等。

谁可以利用这些漏洞?
攻击者可能会利用这些漏洞,攻击者能够让其他用户运行攻击者选择的 Java 小程序。 攻击者可能寻求执行此操作的方法有两种:

  • 通过在攻击者控制的网站上托管利用问题的小程序。
  • 通过在 HTML 邮件中包含利用问题的小程序并将其直接发送给所选用户。

基于 Web 的攻击向量会构成哪些风险?
在网站中托管小程序攻击者的优点是,大多数用户的浏览器都配置为允许网站上的 Java 小程序运行。 攻击者的缺点是,他不可能强迫某人访问该网站。 用户需要自愿访问攻击者的网站,或单击超链接(托管在另一个网页、电子邮件等上),以便将其带到那里。

基于邮件的攻击途径会构成什么风险?
攻击者在 HTML 邮件中发送小程序的好处是,他或她可能以特定用户为目标,也就是说,攻击者不需要等待用户访问他或她的网站,而是可以直接将小程序发送给他们。 攻击者的缺点是,最新的 Microsoft 邮件客户端不允许电子邮件中的 Java 小程序运行。 例如,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)会阻止 Java 小程序在其默认配置中运行。 同样,如果已安装 Outlook 电子邮件安全更新,Outlook 98 和 2000 会阻止 Java 小程序运行

新的 VM 生成如何解决漏洞?
修补程序会阻止上述方案,并确保调用 COM 对象的所有方法都受到适当的安全检查。

CODEBA标准版欺骗漏洞(CAN-2002-1258):

这些漏洞的范围是什么?
这两个漏洞源于不同的问题,但效果完全相同。 攻击者都可以从其他用户的系统读取(但不能更改、添加或删除)文件,并可能从用户有权读取访问权限的其他网络共享读取文件。 尽管可以通过网站或 HTML 邮件利用这些漏洞,但如果用户运行了多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
漏洞源于两个问题,这两个问题都有可能欺骗 APPLET 标记中的 CODEBA标准版 参数中指定的位置。

什么是 APPLET 标记?
APPLET 是一个命令(或者,在 HTML 语言中为标记),当包含在网页中时,会导致浏览器加载并运行特定的 Java 小程序。

CODEBA标准版 参数是什么,它的作用是什么?
CODEBA标准版是在 APPLET 标记中指定的参数之一。 它告诉浏览器 Java 小程序所在的位置,并可以指向网站、第三方服务器或存储在用户自己的本地文件系统上的 Java 小程序。 根据设计,小程序始终具有对其自己的代码库的读取访问权限,即它来自的文件夹,以及它下面的所有从属文件夹。 例如,如果 CODEBA标准版参数用于运行位于用户系统上 C:\XYZ 文件夹中的 Java 小程序,则小程序将对该文件夹中的所有文件及其下的所有子文件夹具有读取访问权限。

CODEBA标准版 Internet Explorer 的一部分还是 Microsoft VM 的一部分?
由于 APPLET 标记由浏览器处理,因此很容易得出结论,CODEBA 的处理标准版参数是 Internet Explorer 的一部分。 不过,实际上,CODEBA标准版的处理由 Microsoft VM 处理。

VM 如何实现 CODEBA标准版功能存在哪些问题?
有两个问题具有相同的净效果。 在这两种情况下,都可以构造 CODEBA标准版导致 VM 从一个位置加载小程序的信息,但相信它实际上来自其他位置。 在大多数情况下,攻击者会利用漏洞运行来自其自己的网站的 Java 小程序,但说服 VM 它实际上来自其他位置-用户的硬盘驱动器、网络文件共享或其他位置。

这些漏洞会使攻击者能够执行哪些操作?
攻击者可以使用漏洞来获取读取其不应通过设计访问的文件的能力。 例如,如果攻击者使小程序似乎来自用户系统上的 C:\ 文件夹,他或她将能够在该文件夹或下方的任意位置读取文件。 同样,如果攻击者使小程序似乎来自网络共享,他或她将获得从该位置读取文件的能力。

攻击者如何利用漏洞?
可以通过与上述完全相同的方式利用漏洞:通过创建利用它的 Java 小程序,然后将小程序托管为攻击者网站上托管的网页的一部分,或通过 HTML 邮件直接发送给用户。

攻击者能否更改文件?
否。 攻击者只能读取文件 -- 不添加、更改或删除这些文件。

攻击者可以读取哪些文件是否有任何限制?
是的。 攻击者的访问权限将由用户自己的读取访问权限控制。 如果用户对特定文件没有读取访问权限,则攻击者都不会拥有读取权限。 这有两个重要影响:

  • 这会显著限制对网络文件共享的公开。 即使攻击者可能获得此类共享的访问权限,他或她仍会受到用户自己的权限的限制。 如果存在用户无法访问的文件或文件夹,则攻击者也不能访问。
  • 这会阻止攻击者访问用户自己的系统上的一些重要文件。 例如,包含加密用户密码的安全访问管理器文件被操作系统锁定,在操作期间无法读取,即使是具有管理权限的用户也是如此。

新的 VM 生成如何解决漏洞?
修补程序会正确分析 APPLET 标记中的 CODEBA标准版信息。 在一种情况下,只需拒绝无效的请求即可完成此操作。 在其他情况下,这是通过在网页可以使用 CODEBA标准版 参数时施加限制来完成的,并且仅在网页和小程序的位置位于同一 Internet Explorer 安全区域中时才允许发生这种情况。

域欺骗漏洞(CAN-2002-1259):

此漏洞的范围是什么?
此漏洞可能通过复杂的方案,使攻击者的 Java 小程序能够构成属于另一个网站的小程序。 然后,用户向小程序披露的任何信息都可以中继回攻击者。 利用漏洞需要用户访问攻击者的网站,然后才能访问另一个可能受信任的网站,我们网站或单击攻击者控制的超链接。 即便如此,攻击者的小程序也无法迫使用户向该小程序透露敏感信息。 此外,尽管可以通过网站或 HTML 邮件利用这些漏洞,但如果用户运行了多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
漏洞结果是因为可以创建一个 URL,导致 Microsoft VM 错误地确定加载 Java 小程序所在的域,并得出结论,它来自一个网站,而实际上它来自另一个网站。

域的含义是什么?
域使 Web 内容能够根据其起源点进行区分。 在大多数情况下,域等同于网站,即网站 A 中的所有网页、Java 小程序和其他内容都驻留在其自己的域中,而网站 B 中的内容驻留在不同的域中。 这允许每个网站的内容受到适当的安全限制。 基于 Web 的软件(如 Internet Explorer 和 Microsoft VM)通过仔细查看加载域的 URL 来计算域。

早期版本的 Microsoft VM 如何计算域?
VM 无法正确分析特定类型的 URL。 具体而言,如果使用特定、相当不寻常的格式(包含对两个不同的网站的引用)构造 URL,则 VM 会在另一个站点中运行 Java 小程序时错误地处理它并从一个站点加载 Java 小程序。

这会使攻击者能够执行哪些操作?
实际上,该漏洞为攻击者提供了一种暂时将其他人网站上的 Java 小程序替换为其选择之一的方法。 由于它将位于其他站点的域中,因此可以访问网站在特定用户的系统上放置的任何 Cookie。 此外,从用户请求的任何信息都可以中继回攻击者。

攻击者如何利用漏洞?
可以通过与上述完全相同的方式利用漏洞:通过创建利用它的 Java 小程序,然后将小程序托管为攻击者网站上托管的网页的一部分,或通过 HTML 邮件直接发送给用户。 攻击者的小程序需要具有与其他网站上有效小程序的名称完全匹配的名称。

假设用户直接访问了另一个网站。 攻击者是否可以利用漏洞?
否。 只有在用户访问攻击者的网站(或单击攻击者的 HTML 邮件中的链接)路由到另一个站点时,才能利用该漏洞。 显然,这不是人们通常访问受信任的网站的方式。

利用漏洞的影响会是永久性的吗?
否。 例如,如果用户曾一次通过攻击者的网站访问了网站 A,攻击者可能会利用该漏洞。 但是,如果他随后直接访问了网站A-即,不是通过攻击者的网站-正确的小程序,而不是攻击者,将运行。

漏洞是否提供任何方式来实际取代其他网站上的小程序?
否。 如果其他用户访问了网站 A,则会运行正确的小程序。 攻击者的小程序仅在用户访问攻击者的网站路由到网站 A 的特定情况下运行。

新的 VM 生成如何解决漏洞?
修补程序会建立新的检查,以确保计算正确的域,即使使用上面讨论的格式构造 URL 也是如此。

JDBC API 漏洞(CAN-2002-1260):

此漏洞的范围是什么?
此漏洞可能导致攻击者以其他用户的身份访问数据库。 如果成功利用,攻击者可以读取、添加、更改或删除用户有权访问的任何数据源中的数据。 如果攻击者知道(或可以猜测)数据库的名称,攻击者只能利用该漏洞。 在大多数情况下,这需要大量的内部知识。 此外,尽管可以通过网站或 HTML 邮件利用这些漏洞,但如果用户运行了多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
由于 Java 数据库连接性 API 无法正确规范谁可以调用这些 API,并且将服务来自不受信任的 Java 小程序的请求。

什么是 Java 数据库连接性 API?
Java 数据库连接性(JDBC)API 是一组函数,允许 Java 程序连接到和使用各种类型的数据库,包括 SQL 数据库、Access 数据库甚至平面文件。

JDBC API 在早期版本的 Microsoft VM 中如何运行?
根据设计,只有受信任的程序才能访问 API-毕竟,它们提供读取、更改或删除数据的功能。 但是,可以绕过安全检查,因此不受信任的 Java 小程序可以使用 API。

此漏洞会使攻击者能够执行哪些操作?
成功利用漏洞的攻击者可能会“劫持”其他用户的数据库访问权限。 这将使攻击者能够访问用户可以访问的任何数据源,并充分利用用户拥有的任何权限。 如果用户可以删除数据,攻击者也可以删除数据;如果用户可以添加数据,则攻击者可能这样做;等等。

攻击者如何利用此问题?
可以通过与上述完全相同的方式利用漏洞:通过创建利用它的 Java 小程序,然后将小程序托管为攻击者网站上托管的网页的一部分,或通过 HTML 邮件直接发送给用户。

攻击者如何知道用户有权访问哪些数据库?
该漏洞使攻击者无法了解用户有权访问的数据源或其他关键信息,例如这些数据源的名称和位置。 相反,攻击者可能需要进行重大侦察才能了解此信息。

如果用户仅具有特定数据源的读取权限,攻击者能否获得其他权限?
否。 攻击者将限制为用户拥有的任何权限。 此漏洞不提供攻击者获得其他权限的方式。

新的 VM 生成如何解决漏洞?
新的 VM 生成在 JDBC API 上建立适当的检查,并确保只有受信任的代码才能访问它们。

标准安全管理器访问漏洞(CAN-2002-1261):

此漏洞的范围是什么?
这是 拒绝服务 漏洞。 如果成功利用,攻击者将允许攻击者暂时阻止其他网页上的 Java 小程序运行。 效果将持续到当前浏览器会话的持续时间内,但新浏览器会话将不受影响。 尽管可以通过网站或 HTML 邮件利用漏洞,但如果用户运行了多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
漏洞结果是因为标准安全管理器可由 Java 小程序写入。

标准安全管理器是什么,它的作用是什么?
标准安全管理器是 VM 安全策略机制的一个组件,提供有关在 Internet Explorer 中运行 Java 小程序时应强制执行的限制的信息。 它可以包含的信息包括 Java 小程序列表和 Java 小程序不应调用的模块。

标准安全管理器中更正了什么问题?
VM 无法正确规范谁可以写入该 VM。 根据设计,只有 VM 本身才能向其添加信息。 然而,实际上,任何 Java 小程序都可以。 结果在于,Java 小程序可以向“禁止”列表添加其他小程序。

此漏洞会使攻击者能够执行哪些操作?
成功利用此漏洞的攻击者可以将其他 Java 代码添加到标准安全管理器中的“禁止”列表中,并阻止当前的 Internet Explorer 会话使用该代码。 这样做的结果是防止任何依赖于现在禁止的 Java 模块的网站正常运行。

成功攻击的效果会持续多久?
效果只会持续到用户关闭浏览器为止。 后续浏览器会话(或并行保存的其他会话)不会受到影响。

攻击者如何利用此问题?
此问题可以与上述完全相同的方式加以利用:通过创建利用它的 Java 小程序,然后将小程序作为托管在攻击者网站上的网页的一部分,或通过 HTML 邮件直接发送给用户。

攻击者是否可以利用漏洞来放宽对其自己的 Java 小程序的限制?
否。 该漏洞仅允许攻击者实施更严格的限制;它不会提供任何方法来松动他们。

新的 VM 生成如何解决漏洞?
新的 VM 生成会更正标准安全管理器上的权限,以便仅允许 VM 本身写入它。

User.dir 暴露漏洞 (CAN-2002-1325):

第一个安全问题的范围是什么?
这是一个 信息泄露 问题。 如果成功利用,攻击者将能够了解其他人的用户名。 虽然这本身不会给用户带来任何安全风险,但它可以帮助攻击者对其他攻击执行侦察。 尽管可以通过网站或 HTML 邮件利用漏洞,但如果用户运行了多个邮件客户端中的任何一个,则会阻止电子邮件向量。 具体而言,Outlook Express 6 和 Outlook 2002(作为 办公室 XP 的一部分提供)默认禁用 Java,如果安装了 Outlook 电子邮件安全更新Outlook 98 和 2000 将禁用它。

导致漏洞的原因是什么?
此问题会导致此问题,因为 Microsoft VM 不会阻止不受信任的小程序访问 user.dir 系统属性。

什么是系统属性?
当 Java 小程序运行时,它可能需要知道有关用户系统的某些信息才能正确执行此操作。 例如,如果小程序需要操作系统的帮助才能完成其工作,则可能需要确切地知道运行它的系统上安装了哪个版本的 Windows。 系统属性提供小程序可以查询操作系统并了解此类信息的方法。 不同的属性具有不同的敏感度级别,有些属性不适合不受信任的小程序。 根据设计,Microsoft VM 应根据是否受信任来规范特定小程序可用的属性。 但是,它无法规范对一个特定系统属性(称为 user.dir)的访问。

什么是 user.dir,它的作用是什么?
user.dir 属性提供有关宿主应用程序的当前工作目录的信息 ,在本例中为 Internet Explorer。

为什么不受信任的小程序无法了解 Internet Explorer 的当前工作目录?
主要原因是它可以泄露用户的帐户名称。 在大多数情况下,Internet Explorer 的工作目录是用户的桌面,其中包括用户名作为路径的一部分。 例如,用户 John 的桌面可以是“c:\documents and settings\john\desktop”。 通过泄露目录,VM 还会泄露“John”用户名。

问题会让攻击者知道用户的标识吗?
否。 用户标识与其用户名之间存在重要区别。 用户名只是 Windows 知道系统的名称, 但它不一定是用户的实名。 例如,John 帐户的所有者可能确实被命名为 John,但不能保证。 家庭用户可以选择他们喜欢的任何用户名;公司用户可能需要选择一个用户名,该用户名是其真实名称的一些派生。

攻击者如何利用漏洞?
此问题可以与上述完全相同的方式加以利用:通过创建利用它的 Java 小程序,然后将小程序作为托管在攻击者网站上的网页的一部分,或通过 HTML 邮件直接发送给用户。

新的 VM 生成如何解决漏洞?
新的 VM 生成施加限制,将阻止不受信任的 Java 小程序访问 user.dir 系统属性。

不完整的 Java 对象实例化漏洞(CAN-2002-1263):

此漏洞的范围是什么?
当用户访问攻击者的网站时,此漏洞可能会使攻击者导致 Internet Explorer 失败。 这本身不会给用户带来任何安全风险,并且可以通过重启 Internet Explorer 来还原正常操作。

导致漏洞的原因是什么?
该漏洞发生的原因是 Java 小程序可能创建错误初始化的 Java 对象,其效果将是在 Internet Explorer 中损坏内存并导致内存失败。

你指的是“初始化不正确的 Java 对象”是什么意思?
当网页导致 Java 代码加载和运行(或者当 Java 小程序导致加载和运行其他 Java 代码时),它称为实例化 Java 对象。 完成此操作后,必须进行一些管家活动,以便分配代码所需的资源。 此问题涉及一种实例化 Java 对象的方法,这些对象导致在没有所有适当资源的情况下启动它们。

早期版本的 Microsoft VM 如何实例化 Java 对象?
网页可以通过设计不允许的方法实例化 Java 对象。 Microsoft VM 不会阻止特定类型的系统提供的 Java 对象的实例化, 特别是包含所谓的 专用构造函数的 Java 对象。 此类对象只能由 VM 本身创建;网页和 Java 小程序缺乏为其分配资源的权限。

此问题会使攻击者能够执行哪些操作?
攻击者可以使用此问题在用户的系统上导致 Internet Explorer 失败。

还原正常操作需要什么?
若要恢复正常操作,用户只需重启 Internet Explorer。

我听说这实际上是缓冲区溢出漏洞。 这是真的吗?
有一些推测性声明表明,这是缓冲区溢出漏洞,攻击者可以通过该漏洞来控制用户的系统。 事实上,这不是缓冲区溢出,而且,根据微软的了解,除了使 Internet Explorer 失败之外,它不能用于执行任何操作。

新 VM 生成如何解决此问题?
该修补程序通过阻止上面讨论的实例化方案以及禁止实例化具有专用构造函数的 Java 对象来解决该问题。

修补程序可用性

Microsoft Java 虚拟机不再受支持。 有关详细信息,请参阅 Microsoft Java 虚拟机Microsoft Java 虚拟机支持

其他信息:

支持

  • Microsoft 知识库文章 810030 讨论了此问题,将在发布本公告大约 24 小时后提供。 可以在 Microsoft Online 支持网站上找到知识库文章。
  • Microsoft 产品支持服务提供技术支持。 与安全修补程序关联的支持调用不收取任何费用。

安全资源:Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。

免责声明

Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。

修改:

  • V1.0(2002 年 12 月 11 日):公告已创建。
  • V1.1(2002 年 12 月 12 日):常见问题解答已更新,提供有关使用 Windows 更新 目录的其他参考。
  • V1.2(2003 年 1 月 17 日):常见问题解答已更新,以更正链接错误。
  • V2.0(2009 年 7 月 1 日):删除了下载信息,因为 Microsoft Java 虚拟机不再可用于从 Microsoft 分发。 有关详细信息,请参阅 修补程序可用性

构建于 2014-04-18T13:49:36Z-07:00</https:>