win32k.sys字体目录项解析漏洞 | MSRC博客
MS09-065修复了win32k.sys字体解析子系统中的一个漏洞(CVE-2009-2514)。若未修复,攻击者可能使系统蓝屏(DoS,最佳情况)或以内核权限执行任意代码(最坏情况)。
问题本质
win32k.sys中负责构建目录项表的字体解析子系统存在整数溢出漏洞。当计算目录项的偏移量和大小成员之和时可能发生整数包装,导致后续代码出现内存访问异常,通常表现为读取访问违规。
该漏洞被评定为严重级别,因为漏洞代码通过Internet Explorer暴露且无需用户交互即可触发,漏洞利用指数评级为1。
受影响平台
Windows 2000、Windows XP和Windows Server 2003用户受影响。Windows Vista、Windows 7、Windows Server 2008和Windows 2008 R2用户不受影响。
攻击向量
远程攻击向量(最坏情况为远程代码执行):
- 恶意网站通过.eot文件传递恶意字体(TTF),所有版本的IE默认都会渲染
- 通过社交工程诱骗受害者打开包含畸形嵌入字体的Office文档(PowerPoint和Word文档最可能)
本地攻击向量(最坏情况为本地权限提升):
- 多用户环境(终端服务)中通过AddFontResource()向win32k.sys传递恶意字体
防护措施
最佳防护方案是安装MS09-065更新。
若无法安装更新,可禁用IE中解析/加载嵌入字体的支持(副作用是使用嵌入字体技术的网站无法正常显示):
交互式设置
- 启动Internet Explorer
- 选择"工具"菜单中的"Internet选项"
- 点击"安全"标签
- 选择"Internet"区域并点击"自定义级别"
- 在"下载"部分将"字体下载"设置为"提示"或"禁用"
- 确认关闭所有对话框
组策略设置
- 打开组策略管理控制台
- 导航至:用户配置→Windows设置→Internet Explorer维护→安全
- 双击"安全区域和内容分级"
- 选择"导入当前安全区域和隐私设置"并点击"修改设置"
- 为"Internet"和"本地Intranet"区域分别设置"字体下载"为"提示"或"禁用"
- 刷新组策略
托管部署脚本
通过注册表脚本设置字体下载策略:
设置为提示:
|
|
设置为禁用:
|
|
感谢MSRC工程团队的Robert Hensing和Andrew Roths为本漏洞防护方案做出的贡献。
-Brian Cavenah, MSRC工程团队