远程控制工具VNC拒绝服务漏洞分析
扫描二维码随身看资讯
使用手机 二维码应用 扫描右侧二维码,您可以
1. 在手机上细细品读~
2. 分享给您的微信好友或朋友圈~
Qemu是一款处理器模拟软件,可以提供用户模式模拟和系统模式模拟。当处于用户模式模拟状态时,将使用动态翻译技术,允许一个cpu构建的进程在另一个cpu上执行。本篇文章就是针对远程控制工具VNC拒绝服务漏洞的分析。
VNC(Virtual Network Computing)是一款优秀的远程控制工具软件。由于Qemu内置vnc功能模块,所以可通过vnc客户端对远程Qemu虚拟机进行远程访问。
360安全团队成员连一汉/LR在阅读Qemu-VNC源码过程中,发现了功能模块中的一个远程拒绝服务。
该漏洞危险等级为中,漏洞编号CVE-2015-5239。
VNC通讯协议介绍
VNC采用RFB通信协议。RFB(“remote 帧缓存”)是一个远程图形用户的简单协议。通过这个协议,用户可以远程模拟鼠标点击、键盘按键以及文本复制/剪切等功能。本文所讲述漏洞就是在文本复制/剪切时触发的。
举例说明下面这段数据是真实发送的用于文本复制/剪切的报文:
06 00 00 00 00 00 00 06 74 65 73 74 21 21
06 :表示协议类型message-type
00 00 00 :用于填充padding
00 00 00 06 :待剪切数据的长度length
74 65 73 74 21 21:待剪切数据内容text
协议格式相对简单,就不再进一步描述。
漏洞分析
QEMU在通过vnc读取报文中存储的剪切板中的数据时,由于其未对报文中用于描述数据长度的字段进行严格限制,进而导致其出现逻辑错误进入死循环。下面就是程序处理的主体逻辑:
读取报文中用于描述待读取数据长度的字段
判断这个字段是否超过整个报文的长度。
如果为否,则进行数据复制;如果为是,则跳出循环
实现代码如下(ui/vnc.c):
从上述代码中可以发现:由于len的初始值为1,所以protocol_client_msg()的返回值为8。Input.offset的值始终为14大于8,所以此时不会跳出循环。在进入下次循环时8将作为protocol_client_msg()的参数len传入,用于读取报文长度字段的值。但是,如果此时读取的报文中的长度字段为0xFFFFFFF9则protocol_client_msg()的返回值又将为1,下次循环时len的值也就又恢复为初始值1。
这样,程序又进入开始时的状态,再次调用protocol_client_msg()并且返回值为8。然后又将8传入protocol_client_msg(),读取报文中的长度字段0xFFFFFFF9,返回值又为1,循环往复。由于在这段循环过程中客户端连接标志vs->csock始终未被更改,程序也将无法跳出循环,从而进入死循环状态。Vnc拒绝服务也就由此产生。
漏洞危害
攻击者利用该漏洞可以导致虚拟机拒绝服务,并且保持对cpu的高占用率,继而会影响宿主机以及其他虚拟机的正常执行。
我们在测试环境中对该漏洞进行测试,触发前后的截图如下。可以看到,在漏洞触发后qemu-kvm无法远程访问,并占有极高的CPU使用率,严重影响其它程序的运行。
漏洞触发前CPU的状态:
漏洞触发后CPU的状态:
修补方案
官方已经对该漏洞进行修复,修补如下:
该补丁中,开发人员对关键数据dlen的大小进行严格的大小判断,确保数据长度值不能超过1MB。这样就完美修复此漏洞。在这里建议所有使用qemu的厂商采用该补丁,防止攻击者利用CVE-2015-5239漏洞对厂商和用户攻击造成损失。
天天绕圈圈游戏 1.2.5 安卓版
加查海关与咖啡游戏 1.1.0 安卓版
大吉普越野驾驶游戏 1.0.4 安卓版
沙盒星球建造游戏 1.5.0 安卓版
秘堡埃德兰Elderand游戏 1.3.8 安卓版
地铁跑酷暗红双旦版 3.5.0 安卓版
跨越奔跑大师游戏 0.1 安卓版
Robot Warfare手机版 0.4.1 安卓版
地铁跑酷playmods版 3.18.2 安卓版
我想成为影之强者游戏 1.11.1 官方版
gachalife2最新版 0.92 安卓版
航梦游戏编辑器最新版 1.0.6.8 安卓版
喵星人入侵者游戏 1.0 安卓版
地铁跑酷黑白水下城魔改版本 3.9.0 安卓版
- 1
芭比公主宠物城堡游戏 1.9 安卓版
- 2
地铁跑酷忘忧10.0原神启动 安卓版
- 3
死神之影2游戏 0.42.0 安卓版
- 4
跨越奔跑大师游戏 0.1 安卓版
- 5
挂机小铁匠游戏 122 安卓版
- 6
烤鱼大师小游戏 1.0.0 手机版
- 7
咸鱼大翻身游戏 1.18397 安卓版
- 8
灵魂潮汐手游 0.45.3 安卓版
- 9
旋转陀螺多人对战游戏 1.3.1 安卓版
- 10
Escapist游戏 1.1 安卓版
- 1
开心消消乐赚钱版下载
- 2
Minecraft我的世界基岩版正版免费下载
- 3
暴力沙盒仇恨最新版2023
- 4
疯狂扯丝袜
- 5
黑暗密语2内置作弊菜单 1.0.0 安卓版
- 6
爆笑虫子大冒险内购版
- 7
姚记捕鱼
- 8
班班幼儿园手机版
- 9
秘密邻居中文版
- 10
千炮狂鲨