FreeBuf | uTorrent协议层远程漏洞的分析和利用,安全研究( 二 )

文章图片
漏洞CVE-2020-8437漏洞CVE-2020-8437存在于uTorrent解析Bencoded字典的代码之中 , 说准确一点 , 就是解析嵌套字典的代码 。 在补丁发布之前(uTorrent3.5.5及其之前版本) , uTorrent将使用一个32位整数作为一个比特字段来跟踪Bencoded字典当前正在解析的部分 。 比如说 , 当uTorrent在解析第一层时 , 这个比特字段将会被设置为‘00000000000000000000000000000001’ , 当uTorrent在解析第二层时 , 这个比特字段将会被设置为‘00000000000000000000000000000011’ 。
但是 , 如果一个Bencoded字典的嵌套层数超过32层的话 , 会发生什么呢?于是乎 , 我便创建了一个这样的字典 , 然后丢给了uTorrent的字典解析器 , 结果如下:

文章图片
这就很Nice!uTorrent崩溃啦!深入分析后 , 我们发现这是一个空指针引用错误 。
漏洞利用漏洞CVE-2020-8437有两个简单的利用向量 , 首先是要一个远程对等节点发送一个包含恶意Bencoded字典的扩展消息数据包 , 其次就是需要一个包含了恶意Bencoded字典的.torrent种子文件 。
远程对等节点利用当两个支持扩展消息的对等节点开始交互通信时 , 它们都会发送一个数据包来枚举各自支持的扩展功能 , 而关于支持扩展的消息就是通过Bencoded字典来发送的 , 如果字典是恶意字典 , 那么客户端在解析Bencoded字典时就会触发漏洞CVE-2020-8437 。
Torrent文件利用.torrent种子文件封装了客户端开始下载torrent所需的最基本信息 , 这些文件在torrent网站上公开共享 , 任何人都可以直接下载 , 然后使用torrent客户端来打开 , 因此这些文件都有可能成为触发漏洞CVE-2020-8437的工具 。 一个.torrent文件相当于是一个以文件格式保存的Bencoded字典 , 因此我们只需要将一个恶意Bencoded字典保存为一个.torrent文件 , 就可以实现攻击向量的创建了 。
漏洞利用演示视频视频地址:https://youtu.be/wIXZvz_Y4Ag
缓解方案根据该漏洞的严重性情况 , 建议广大用户尽快将uTorrent客户端程序升级至最新版本!

文章图片
推荐阅读
- 离职|月薪8千离职赔偿100万?“宁王”竞业协议纠纷案被曝
- 微软|旧款路由注意 微软Win11不再支持WEP等Wi-Fi加密协议
- 音乐|国家版权局:非特殊情况 不得签署音乐独家版权协议
- 台积电|“小螃蟹”力保网络芯片供应!瑞昱与台积电达成长期协议
- 奔驰|合资十年终“分家”!比亚迪和戴姆勒均签署股权转让协议
- 苹果|仅有3%的用户愿意阅读!苹果用户协议长度惊人:需要半个小时才能读完
- 壳牌|蔚来、壳牌签署战略合作协议!共建换电站 开放壳牌欧洲充电网
- 建行江苏省分行|建行无锡分行与无锡市农业农村局 签署战略合作协议
- 微软|高通联合微软达成独家协议:Windows 11将不支持苹果M1芯片
- Windows操作系统|Windows为何不支持苹果M1:微软、高通秘密搞事!独家协议将到期
