Xen超虚拟化帧缓冲区后端帧缓冲区处理漏洞 CVE-2008-1943 CNNVD-200805-147

2.1 AV AC AU C I A
发布: 2008-05-14
修订: 2017-09-29

Xen是英国剑桥大学开发的一款开源的虚拟机监视器产品。该产品能够使不同和不兼容的操作系统运行在同一台计算机上,并支持在运行时进行迁移,保证正常运行并且避免宕机。 Xen中超虚拟化帧缓冲区(PVFB)后端没有验证前端的帧缓冲区描述,这可能允许恶意用户导致拒绝服务或使用特制的前端入侵特权域Dom0。 帧缓冲区是由以下参数描述的: * fb_len(共享帧缓冲区大小) * width,height,depth * row_stride,offset 在启动时fb_len是固定大小,前端可以通过发送XENFB_TYPE_RESIZE事件修改其他参数。如果存在后端配置参数videoram的话,xenfb_read_frontend_fb_config()会根据这个参数限制fb_len。xenfb_map_fb()使用fb_len映射前端的帧缓冲区,除非有videoram参数的限制,否则前端就可以使该函数映射任意大小。 xenfb_register_console()和xenfb_on_fb_event()向QEMU的DisplayState对象传送width、height、depth和rowstride参数。如果参数允许的话,DisplayState对象直接操作帧缓冲区(shared_buf为true),否则分配大小为height * width * depth/8的内部缓冲区(shared_buf为false)。 xenfb_on_fb_event()使用width和height参数确定升级事件的区域,然后将该区域传送给xenfb_guest_copy();xenfb_invalidate()将完整的屏幕区域传送给xenfb_guest_copy();除非shared_buf为true,否则xenfb_guest_copy()将参数区域(x,y,w,h)拷贝到内部缓冲区,这会拷贝h块内存;从0开始计算的第i次拷贝将共享帧缓冲区的w * depth/8字节 + offset + (y + i) * row_stride + x * depth/8拷贝到了内部缓冲区 + (y + i) * ds->linesize + x * ds->depth/8。(这里ds->linesize和ds->depth是后端所指定的内部缓冲区)...

0%
暂无可用Exp或PoC
当前有9条受影响产品信息