远程控制工具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
千炮狂鲨