当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-050099

漏洞标题:Mirror API 过滤不严导致 Google Glass 无限崩溃

相关厂商:Google

漏洞作者: XiNGRZ

提交时间:2014-01-31 14:48

修复时间:2014-03-17 14:49

公开时间:2014-03-17 14:49

漏洞类型:设计缺陷/逻辑错误

危害等级:低

自评Rank:4

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-01-31: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-03-17: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

Google Glass 系统中一个未开发完成(对异常没有完全处理)的功能,云端的 Mirror API 就已经开放了对应的功能。导致用户的 Google Glass 接收到错误数据后无限崩溃,无法使用。

详细说明:

第二次在乌云提交漏洞,不知道官方已经知晓但还没修复的漏洞能提不。但还想写一下以备忘。
这个“漏洞”的利用有一个前提,利用者必须已经“合法”取的用户的 Google Glass 访问权,也就是 Access Token。如何合法?比如黑掉某个已经被很多人用的 Glass 应用脱裤取得;比如欺骗用户点击授权,blablabla。。。所以影响范围还不至于太大。
下面是正文。
Google Glass 的机制简单来说就是,开发者通过向云端的 Mirror API 使用 HTTP RESTful 提交数据,然后由 Google 后台统一将数据同步到 Glass 上。开发者和用户之间的授权,通过 OAuth 2.0 完成,授权完毕后开发者就拥有向由 Mirror API 所代表的这一副 Glass 推送数据的权限。
这个漏洞的原因,估计是 Glass 上对应的某个功能还未开发完成,但 Mirror API 却已经允许推送包含这个功能的数据了。未开发完成的意思是,对非法数据的判断还没有完善,写 Java 的童鞋应该都知道 NullPointerException 吧。
结果就是,如果向某一副 Glass 推送这个特定的 Timeline Card,Glass 收到 Card 后将它插入到了 Timeline 上,并继续处理的时候就会抛出异常,进而崩溃;崩溃重启,重新加载 Timeline,读到这个恶意 Card,再崩溃;如此循环…
需要说明的是,在用户的角度,取消应用授权并不会删除历史 Card,唯一办法就只有 Factory Reset 了。。。
假如某个别有用心的童鞋,黑了某个很多人用的服务然后群发这种 Card;或者某个人炮制了一个“好玩儿”的应用骗大家去授权。。。啧
----------
利用起来还是有点前提的,所以等级为低(初来乍到,对乌云不熟悉,抱歉)
官方已经 accepted 了这个 defect 了,所以这里只是引以为戒而已。
http://code.google.com/p/google-glass-api/issues/detail?id=391

漏洞证明:

推一个包含了 action 为 "HANGOUT" 的菜单的 Card。

POST /mirror/v1/timeline HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer {{YOUR_ACCESS_TOKEN}}
Content-Type: application/json
{
"text": "Hey guy, you are hacked",
"menuItems": [ { "action": "HANGOUT" } ]
}


img.png

修复方案:

屏蔽未正式发布的功能。

版权声明:转载请注明来源 XiNGRZ@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝