关键信息总结 漏洞描述 问题描述:Linux 中的 vm86 系统调用(用于以用户态模拟虚拟的8086模式以执行(old) 8086软件时)容易触发浮点单元(FPU)错误,通常在处理FPU控制寄存器时,特别是在AMD K7/K8架构的内核中引发未处理的异常,导致CPU异常,包括内核panic。 问题原因:缺失对FPU异常在任务切换时的处理,具体为 指令执行时未处理。 漏洞利用方法 1. 初步概念验证(POC):通过Virtual86SwitchToEmmsFault.c程序触发内核panic,依赖vm86系统调用和随机代码执行工具(Virtual86RandomCode.c)可增强利用效果,构成可靠的测试案例。 2. 高级利用: - 利用 指令在vm86系统调用中允许FPU进入同一状态导致的NULL指针引用错误。 - 通过修改共享内存扩展属性处理器列表,可以使内核执行任意代码(例如修改执行文件路径来创建SUID后门)。 3. 修复: - 提供了针对该问题的补丁,确认仅影响特定架构的AMD处理器。 影响及利用结果 可导致随机任务被终止,引发服务拒绝,特别是在非SMP的32位架构中,甚至触发NULL指针错误用于权限提升。 受限于特定硬件架构和本地利用的困难性,该漏洞对系统总安全影响低。 时间线及关联材料 报告时间:2013/12/28,发布CVE:CVE-2014-1438 资源链接: - 补丁- git - CVE - OSVDB - SCIP - Secunia 相关漏洞报告:参考Linux Kernel Mailing List及其他安全渠道的讨论。