「漏洞通告」Type1 字体解析远程代码执行漏洞(0-day)

当地时间3月23日,微软发布ADV200006号通告,称其发现目前有在野攻击利用Adobe Type Manager Library中的2个0-day漏洞。

由于该Library在处理multi-master字体(Adobe Type 1 PostScript格式)时存在缺陷,攻击者可以精心构造一个恶意的文档并诱使用户使用Windows Preview pane预览,从而利用该漏洞来远程执行代码。

目前Microsoft已经在准备相关的补丁,预计于下个月的补丁日发出。同时建议用户现在可以采取相应的缓解措施来进行防护。

受影响版本:

  • Windows 10 for 32-bit Systems
  • Windows 10 for x64-based Systems
  • Windows 10 Version 1607 for 32-bit Systems
  • Windows 10 Version 1607 for x64-based Systems
  • Windows 10 Version 1709 for 32-bit Systems
  • Windows 10 Version 1709 for ARM64-based Systems
  • Windows 10 Version 1709 for x64-based Systems
  • Windows 10 Version 1803 for 32-bit Systems
  • Windows 10 Version 1803 for ARM64-based Systems
  • Windows 10 Version 1803 for x64-based Systems
  • Windows 10 Version 1809 for 32-bit Systems
  • Windows 10 Version 1809 for ARM64-based Systems
  • Windows 10 Version 1809 for x64-based Systems
  • Windows 10 Version 1903 for 32-bit Systems
  • Windows 10 Version 1903 for ARM64-based Systems
  • Windows 10 Version 1903 for x64-based Systems
  • Windows 10 Version 1909 for 32-bit Systems
  • Windows 10 Version 1909 for ARM64-based Systems
  • Windows 10 Version 1909 for x64-based Systems
  • Windows 7 for 32-bit Systems Service Pack 1
  • Windows 7 for x64-based Systems Service Pack 1
  • Windows 8.1 for 32-bit systems
  • Windows 8.1 for x64-based systems
  • Windows RT 8.1
  • Windows Server 2008 for 32-bit Systems Service Pack 2
  • Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 for Itanium-Based Systems Service Pack 2
  • Windows Server 2008 for x64-based Systems Service Pack 2
  • Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
  • Windows Server 2012
  • Windows Server 2012 (Server Core installation)
  • Windows Server 2012 R2
  • Windows Server 2012 R2 (Server Core installation)
  • Windows Server 2016
  • Windows Server 2016 (Server Core installation)
  • Windows Server 2019
  • Windows Server 2019 (Server Core installation)
  • Windows Server, version 1803 (Server Core Installation)
  • Windows Server, version 1903 (Server Core installation)
  • Windows Server, version 1909 (Server Core installation)

漏洞验证:

打开资源管理器,在菜单栏中点击“查看”,检查是否有开启“预览窗格”或“详细信息窗格”,如果有开启其中任意一个,则可能存在漏洞风险。

漏洞防护:

  • 在Windows资源管理器中禁用预览窗格和详细信息窗格

在Windows资源管理器中禁用预览和详细信息窗格将阻止在Windows资源管理器中自动显示OTF字体。虽然可以防止在Windows资源管理器中查看恶意文件,但并不能阻止经过身份验证的本地用户运行特殊设计的程序来利用此漏洞。注:使用该方法后Windows资源管理器将不会再自动显示OTF 字体。

Windows 7、Windows 8.1 和Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2禁用预览窗格:

  1. 打开Windows资源管理器,单击组织,然后单击布局。
  2. 清除详细信息窗格和预览窗格的菜单选项。
  1. 单击整理,然后单击文件夹和搜索选项。
  2. 单击视图选项卡。

在高级设置下,选中“始终显示图标,从不显示缩略图框”。(如需撤销该方法,取消勾选即可恢复)

  1. 关闭所有 Windows 资源管理器使配置生效。

Windows 10 和Windows Server 2016、Windows Server 2019禁用预览窗格: 

  1. 打开 Windows 资源管理器(在Windows 10中为文件资源管理器),单击视图选项卡。
  2. 清除详细信息窗格和预览窗格的菜单选项。
  1. 单击选项,然后单击更改文件夹和搜索选项。
  2. 单击视图选项卡。

在高级设置下,勾选始终显示图标,从不显示缩略图框。(如需撤销该方法,取消勾选即可恢复)

  1. 关闭所有 Windows 资源管理器使配置生效。
  • 禁用WebClient服务

要禁用WebClient服务,请按照以下步骤操作:

  1. 单击开始,单击运行(或按键盘上的Windows 键和R),键入Services.msc,然后单击确定。
  2. 右键单击WebClient服务,然后选择属性。
  1. 将启动类型更改为禁用。如果服务正在运行,请单击停止。
  2. 单击确定,退出管理应用程序。

注:当禁用WebClient服务时,不会传输 Web 分布式创作和版本管理(WebDAV)请求,所有明确依赖于WebClient服务的任何服务将不会启动,并且会在系统日志中记录错误消息。例如,将无法从客户端计算机访问WebDAV共享。

  • 重命名 ATMFD.DLL

32位操作系统:

  1. 在管理命令提示符处输入以下命令:
cd "%windir%\system32"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F) 
rename atmfd.dll x-atmfd.dll
  1. 重启系统

64位操作系统:

在管理命令提示符处输入以下命令:

cd "%windir%\system32"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F) 
rename atmfd.dll x-atmfd.dll
cd "%windir%\syswow64"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F) 
rename atmfd.dll x-atmfd.dll
  1. 重启系统
  • 对于Windows 8.1 及更低版本操作系统还可通过以下操作禁用ATMFD(官方建议谨慎使用): 

方法1:手动编辑注册表

  1. 以管理员的身份运行regedit.exe。
  2. 在“注册表编辑器”中,创建以下子项并将其 DWORD 值设置为 1

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\DisableATMFD, DWORD = 1

  1. 关闭“注册表编辑器”并重启系统。

方法2:使用脚本修改注册表

  1. 创建一个包含以下文本并且名为ATMFD-disable.reg的文本文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"DisableATMFD"=dword:00000001
  1. 运行regedit.exe。
  2. 在注册表编辑器中,单击“文件”菜单,然后单击“导入”。
  3. 选择步骤1中创建的ATMFD-disable.reg文件。(注意:如果文件未列于预期位置,请确保尚未自动对该文件给定.txt文件扩展名,或将对话框的文件扩展名参数更改为“所有文件”)。
  4. 单击“打开”,然后单击“确定”,关闭注册表编辑器。

注:使用以上方法后依赖嵌入字体技术的应用程序将无法正确显示。禁用ATMFD.DLL可能导致某些使用OpenType字体的应用程序停止正常运行。Microsoft Windows 自身不会发布任何OpenType字体。但是,第三方应用程序可能会安装这些字体并且可能会受到此更改影响。

撤销该方法请参考微软官方通告中对应的系统进行操作。

目前微软暂未发布修复该漏洞的安全补丁,请相关用户持续关注官方动态:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/adv200006

Spread the word. Share this post!

Meet The Author

Leave Comment