微补丁让被遗弃的公式编辑器重获新生 (2018)
摘要
0patch团队创建了微补丁,修复了微软被遗弃的公式编辑器中的安全漏洞,使用户能够安全地继续编辑公式,而无需升级到昂贵的替代方案。
暂无内容
查看缓存全文
缓存时间: 2026/05/26 06:52
# 微补丁让被遗弃的公式编辑器重获新生
来源:https://blog.0patch.com/2018/01/bringing-abandoned-equation-editor-back.html
**我们如何安全收养一个已终止的软件产品**
作者:Mitja Kolsek, 0patch 团队
[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPnIGq7QblTw4EpMC7U05QYlhYngqJv0pRlairMFWHZOzOt-3xKac28aOds0PmzxWD1jqrDHcKlMOiBpnAL3z2Ur8R3ChG1YQikv5rtXaXqyk-ykKiDMuFBoixq7DTKDyQdsVYUVRGcqle/s1600/ee_i_am_not_dead_yet.png)
**引言**
几天前,微软的更新程序从 Microsoft Office 中移除了 Equation Editor(公式编辑器),官方理由是*"其实现存在安全问题"*。大多数 Office 用户对此移除并不在意,但如果你之前一直愉快地用 Equation Editor 编辑包含数学公式的 Word 文档,突然之间你就无法再编辑了。你仍然能看到文档中的公式,但无法编辑它们。相反,你会看到这个提示:
[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiabzwWvDwW73Y09oiDgE3Seg_RX2tIFhlFBPMbZsCF5nrjhVY128D52KWP6Q2XM7gcCjAzvdJpmXvFxGM6UbfgSMpcqWnLfPN6y9iptB7KcDRLyMMKIFwKn0SoEfIUpNvLROl766mj-q-l/s1600/ee_not_available.png)
我们不知道有多少用户受到影响,但 Twitter 用户 @glyph (https://twitter.com/glyph) 提出了一个有趣的观点:那些使用 Equation Editor 的用户可能会 tempted 放弃这个 Office 更新——进而放弃所有未来的 Office 更新——这将使他们面临未来公开漏洞的利用风险。
> 嗯... 我的表哥,一位高中数学老师,用 Equation Editor 写了所有的教案。各位推友,能帮帮他吗?有迁移路径吗?我保证有一万名数学老师会永远运行未打补丁的 Word,宏启用之类的,如果不这样的话... https://t.co/iuhXeoJhWv — glyph (@glyph) 2018年1月12日 (https://twitter.com/glyph/status/951660385462927360?ref_src=twsrc%5Etfw)
更糟的是,受影响的用户可能会决定迁移回不支持安全更新的旧版 Office。例如,这位用户 (https://twitter.com/koji_sibata/status/952707401622347776) 报告说他在 Windows 10 电脑上回到了 Office 2000。Office 2000 在 2009 年就停止了安全更新。
微软建议 (https://support.microsoft.com/en-us/help/4057882/error-when-editing-an-equation-in-office) 受影响的用户可以通过 Wiris Suite 的 MathType (http://www.wiris.com/equation_editor/microsoft) 来*"安全地编辑 Equation Editor 3.0 方程"*,这是一款商业应用,售价 $97(学术版 $57)(http://store.dessci.com/?)。他们没有明确说明*"安全"*这一断言的依据,但 MathType 目前似乎拥有干净的公开安全记录 (https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=mathtype)。不过这并不能说明什么,因为 Equation Editor 在被揭开面纱之前也是如此。
我们没有测试过 MathType,也无法判断用它替换 Equation Editor 来编辑现有 Word 文档的便捷性,但我们不太喜欢突然从用户电脑上删除他们可能正在使用的工具,然后让他们去商店购买替代品。
微软不愿继续支持 Equation Editor 是可以理解的。他们手动修补 (https://blog.0patch.com/2017/11/did-microsoft-just-manually-patch-their.html) 最近发现的漏洞的方式表明,由于某种原因,他们的标准修补流程无法应用于 Equation Editor,而这样的偏差成本高昂。此外,虽然他们对手动修补可执行文件并不陌生,但这样的修补有时相当困难。当你直接修补可执行文件时,你可能需要为每个补丁想出不同的巧妙节省空间的方法,有时非常困难且耗时。例如,微软对 Equation Editor 的手动补丁需要补丁作者通过解优化内存复制例程来为额外的补丁逻辑腾出一些代码空间。
因此,当微软面对 Equation Editor 中 8(八个!)* 个新漏洞 (https://support.microsoft.com/en-us/help/4011656/descriptionofthesecurityupdatefor2007microsoftofficesuitejanuary9-2018)(在他们手动补丁之后被报告,其中一个也是由我们报告的 (https://blog.0patch.com/2018/01/the-bug-that-killed-equation-editor-how.html))时,他们放弃了继续手动支持它的想法。
而我们,却没有。
你看,对我们来说,为给定的可执行模块创建和支持二进制补丁要比微软容易得多。为什么?因为我们有一个微补丁分发代理(0patch Agent (https://dist.0patch.com/download/latestagent)),它不仅能即时下载微补丁,还能将其注入计算机上正在运行的进程中,同时自动为添加的代码腾出空间。所以我们不必为每个微补丁都想出新的腾出空间的方法,从而可以专注于补丁本身。我们还每小时向代理分发我们的微补丁,撤销和取消应用就像应用它们一样简单。尽管我们不喜欢重复,但我们认为这就是本世纪安全修补应有的样子。
也就是说,我们已经发布了针对 CVE-2018-0802 (https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-0802) 的微补丁,它已应用于所有运行 0patch Agent 且仍保留最新版本 Equation Editor 的计算机。我们还与其他发现 Equation Editor 漏洞的安全研究人员合作,为这些漏洞也制作微补丁。我们敦促所有在 Equation Editor 中发现其他安全问题的人与我们分享他们的发现,并帮助我们为其创建微补丁。
\*更新 2018/2/20:我们刚刚发布了针对另一个 Equation Editor 漏洞的微补丁:[CVE-2018-0798](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0798)。非常感谢 360 伏尔甘团队 (http://www.360.cn/vulreport.html) 的帮助!
**让 Equation Editor 重获新生**
所以你已经安装了 2018 年 1 月 9 日的 Office 更新,Equation Editor 已从你的计算机中移除。具体来说,该更新删除了 EQUATION 文件夹中的五个文件(包括 EQNEDT32.EXE),保留了 1033 子文件夹及其中的 EEINT.DLL。它还通过从注册表中删除 CLSID {0002CE02-0000-0000-C000-000000000046} 来取消注册 Equation Editor 作为本地 COM 服务器。请注意,Office 2016 在更新后仍在 EQUATION 文件夹中保留了一些文件,并且在某些情况下,系统上会留下一个 0 字节的 EQNEDT32.EXE 文件。
EQUATION 文件夹的位置取决于 Office 版本以及是 32 位还是 64 位 Office。以下是默认位置:
- 32 位 Office 2007、2010 和 2013 在 32 位 Windows 上:C:\Program Files\Common Files\microsoft shared\EQUATION
- 32 位 Office 2007、2010 和 2013 在 64 位 Windows 上:C:\Program Files (x86)\Common Files\microsoft shared\EQUATION
- 64 位 Office 2007、2010 和 2013:C:\Program Files\Common Files\Microsoft Shared\EQUATION
- 32 位 Office 2016 和 365 在 32 位 Windows 上:C:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\EQUATION
- 32 位 Office 2016 和 365 在 64 位 Windows 上:C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\EQUATION
- 64 位 Office 2016 和 365:C:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\EQUATION
下图展示了应用 2018 年 1 月 Office 更新前后 EQUATION 文件夹的内容。
[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEQyA3LNcKRSAy-spXrcxbCkLR21di7R9cgJRw0wYC8aQAC-T9_-QVJQtKKPiFsPB6Lg5Er2aS4AMNKzHrM0PdhOgISQP_LQ6qJRF_YcDC-kHD9cjJWFldqeZplQga31dMDLwWU4dKdjjy/s1600/EE_folder_before_update.png)Office 2010:更新前 EQUATION 文件夹的内容
[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRH4GvHiAsfubwEfU6veAGLu3fuobWEcSrCPcL6vH_2UdgqyND0qs7v9bCzuc0MoemXsdNONSd8vleNml7L9s-_BGX2jn230KGLibc_1l8PoeqqCSdCZNKIRC84RmqfIVtlp_59lnY9nEQ/s1600/EE_folder_after_update.png)Office 2010:更新后 EQUATION 文件夹的内容
为了在继续接收未来 Office 安全更新的同时恢复 Equation Editor,你需要做两件事:
1. 恢复被删除的 Equation Editor 文件。
2. 重新注册 Equation Editor 作为本地 COM 服务器。
3. 安装免费的 0patch Agent,以保持 Equation Editor 针对已知漏洞得到修补。
显然,从技术上讲,你不需要最后一步就能让 Equation Editor 重新工作,但你不想暴露于任何 Word 文档中可能携带的廉价易实施的攻击之下。所以明确一下,如果你不执行步骤 C,我们不建议执行步骤 A 和 B。
**A. 恢复被删除的 Equation Editor 文件**
(免责声明:以下并非微软官方支持的程序,不保证有效或没有不良副作用。此外,未来的 Office 更新可能会进一步阻止 Equation Editor 并禁用其使用。你需自行承担风险。)
不幸的是,卸载移除 Equation Editor 的 Office 安全更新并不会恢复被删除的文件。这给你留下了两个选择:(a) 找到一个尚未更新的 Office 副本,或 (b) 从原始介质重新安装 Office,并应用截至 2017 年 11 月的所有更新。完成其中任何一个后,你将在 EQUATION 文件夹中找到以下文件(Office 2016 中可能还有其他文件):
- EQNEDT32.CNT - 帮助文件索引
- EQNEDT32.EXE - Equation Editor 可执行文件
- eqnedt32.exe.manifest - Equation Editor 清单文件
- EQNEDT32.HLP - 帮助文件
- MTEXTRA.TTF - MathType 字体文件
请确保你拥有版本为 2017.8.14.0 的 EQNEDT32.EXE,这是微软提供的最新版本。
你不应该做的是从互联网下载丢失的文件,这不仅可能违反你的许可协议,还是让恶意软件进入计算机的好方法。所以不要这样做。
一旦你手头有了上述 Equation Editor 文件,将它们复制到已安装所有更新(包括 2018 年 1 月 Office 更新)的计算机上的 EQUATION 文件夹中。你需要管理员权限才能执行此操作,并且可能会提示覆盖一个现有的 0 字节 EQNEDT32.EXE 文件,该文件似乎在某些系统上留下了。
**B. 重新注册 Equation Editor 作为本地 COM 服务器**
注册一个本地 COM 服务器需要创建一个有效的 CLSID 注册表项,包含必要的子项和值。为了方便你操作,我们准备了一个模板 .REG 文件,你可以编辑并导入到注册表中。请按以下步骤操作:
1. 下载 EquationEditor.reg (https://0patch.com/files/EquationEditor.reg)。
2. 编辑 EquationEditor.reg(右键点击并选择“编辑”),找到其中的 EQNEDT32.EXE 路径,并将其更改为你计算机上步骤 A 中恢复文件的实际 EQUATION 文件夹路径。重要提示:路径应使用双反斜杠而不是单反斜杠(就像我们上面的示例注册表文件一样),因此请确保路径中的所有反斜杠都加倍。
3. 将修改后的 EquationEditor.reg 导入注册表:首先以管理员身份启动注册表编辑器(regedit.exe),然后在菜单中选择“文件”->“导入...”,并浏览到你的 EquationEditor.reg 文件。
瞧,如果一切顺利,你现在可以再次在 Equation Editor 中编辑公式对象,并保存回 Word 文件。请注意,此注册表更改有时需要几分钟才能生效;在生效之前,打开公式对象将导致“Microsoft Equation 不可用”错误。
如果 Equation Editor 提示缺少字体,请重新安装 MTEXTRA.TTF。
**重要提示:完成此过程后,你仍可以(并且强烈建议)继续应用官方 Office 更新,以修补 Office 其他部分未来的漏洞。这篇博文的全部要点就是帮助你在保持 Office 应用程序更新的同时保留 Equation Editor。**
但你还没完成!现在你需要为你的 Equation Editor 打补丁。进入步骤 C。
**C. 安装 0patch Agent**
0patch 为 Equation Editor(以及许多其他软件产品)提供免费的微补丁。要安装它,请下载 (https://dist.0patch.com/download/latestagent) 并启动安装程序,创建一个免费的 0patch 账户 (https://dist.0patch.com/User/Register) 并将代理注册到该账户。你将立即收到所有 Equation Editor 微补丁——[更新于 2018/2/20] 一个针对 CVE-2018-0802,一个针对 CVE-2018-0798,但当我们获得其他漏洞的详细信息时,我们将发布额外的微补丁。
**预期问题**
以下是我们预期的一些问题,并希望提前回答。
*问:你们为什么这样做?Equation Editor 是一堆有 17 年历史的不安全代码,应该消亡!*
在当今“快速行动,打破常规”的世界里,我们已经习惯了软件必须不断频繁地被新版本替换的想法。事实上,全球软件业务很大一部分建立于“激励”用户购买对他们来说完全够用的产品的新版本之上。当然,底层硬件在改进,新的攻击手段被发明,所以即使软件代码毫无变化,实际上也会随着时间变得更糟,但让我们先暂停一下。
“17 年历史的代码”对许多人来说听起来有点离谱,但我们常常忘记有些产品我们*希望保留* 20 年或更久。比如医疗设备。如果一台运行着相当新且经过充分测试的操作系统的 MRI 机器价值 50 万美元,并且其硬件可以使用 20 年,我们真的想因为操作系统供应商停止提供安全更新而在 10 年后把它扔掉吗?当然不。我们真正想要的是它在 20 年内尽可能保持不变,并且不要有任何对其功能和安全性不必要的软件更改。如果你习惯于每个月替换一半的操作系统,这很难理解。
显然,Equation Editor 不是生命关键设备,而且替换起来似乎相对便宜。然而,它很好地展示了如何由第三方对一个被遗弃的软件产品进行“安全收养”,从而在不让环境暴露于廉价公开利用的情况下继续使用。
*问:即使补丁了公开已知的问题,Equation Editor 不是仍然充满漏洞,使用起来有风险吗?*
在没有彻底检查的情况下,无法判断任何软件产品是否“充满漏洞”。短时间内发现九个漏洞很容易解释:在 Embedi 决定深入探索之前,Equation Editor 被一层隐藏的面纱所保护。一旦他们指出其攻击面如何从 Word 文档中触及,它就成了一个容易摆弄的玩具,显然吸引了许多研究人员。另外八个漏洞很可能都是低垂的果实,即容易发现。但一旦我们修补了它们,再找到下一个漏洞会容易吗?没人知道,如果有人声称知道,请礼貌地要求他们提供证据。
*问:你们打算为 Equation Editor 提供多长时间的补丁?*
根据我们目前掌握的关于 Equation Editor 已知漏洞的详细信息,看来应该很容易...
相似文章
在与研究人员激烈争执后,微软修复了其披露的0-day漏洞
微软修复了研究人员Nightmare Eclipse在激烈争执中披露的一个0-day漏洞,以及MiniPlasma、YellowKey等其他漏洞。该研究人员还发布了针对一个新Windows Defender漏洞的利用代码。
Microsoft 修复创纪录的 570 个安全缺陷
Microsoft 发布了创纪录的 570 个 Windows 及其他软件的安全补丁,包括 60 个严重缺陷和三个零日漏洞,并将数量激增归因于 AI 辅助的漏洞发现。
微软修复了 137 个漏洞,但 Azure AI Foundry 的那个最引人注目
微软修复了 137 个漏洞,其中 Azure AI Foundry 中一个值得注意的高严重性权限提升修复突显了 AI 应用基础设施层的安全风险。
微软修补创纪录数量的安全漏洞,归因于其使用AI
微软为Windows、Office及其他产品发布了创纪录的570个安全补丁,并将这一增长归因于AI辅助漏洞发现。
2026年6月创纪录的补丁星期二
微软2026年6月补丁星期二创下纪录,修复了近200个安全漏洞,其中包括三个已被公开利用的零日漏洞。人工智能工具越来越多地被用于发现漏洞,安全研究员如Nightmare Eclipse发布漏洞利用代码。