传说中的会让微信app崩溃的“iOS 6大漏洞”,是真的吗?如果是,背后是什么原理?

详情如题

推荐  (0) | 27人关注关注
16个答案
58 2

无限非概率驱动程序员,科幻控,历史控

2013-08-30 15:50

http://techcrunch.com/2013/08/29/bug-in-apples-coretext-allows-specific-string-of-characters-to-crash-ios-6-os-x-10-8-apps/

这里已经有报道了 是文本渲染引擎出了bug 具体bug怎么引发多扯也没有用 需要看bug报告细节

"A bug in Apple’s CoreText rendering engine in iOS 6 and OS X 10.8 causes any apps that try to render a string of Arabic characters to crash on sight"


从这里看来,影响到的不光是ios设备,还包括特定版本的 mac os X

"The issue affects apps on iOS 6 and OS X 10.8 but does not work on OS X 10.9 Mavericks and iOS 7 beta releases."


从这里看来,只要升级下就完事了,建议大家速度升级iOS设备的系统到iOS7 以及将受影响的 `OS X 10.8` 系统升级下。 (作为一个果黑来提醒果粉升级系统总感觉怪怪的)

"Because it’s a CoreText bug, any apps that access this font framework to render text are affected."


从这里看来,其实不光是微信客户端,任意引用到这个所谓的CoreText文本渲染引擎的app都要遭殃,我倒是想到个很恶心的破坏,就是那些短信客户端往往有预览功能,要是你给发个带这种字符的文本,放在最开头,预览的时候就能给搞崩溃,那后面他一直都是打开就崩溃,有一段时间不能看短信了,(作为果黑感觉很过瘾额)

You could also change the name of a wireless network to the characters and it will crash any device that scans that network to connect.


这里是个老外更生猛的玩法,就是把路由的网络名也给改成那串字符,也会导致设备崩溃,所以你看跟微信一毛钱关系也没有嘛


BTW, 那个文本渲染引擎主要是为了组件复用和方便同意主题格式搞的,bug的引发我的猜测是跟utf与unicode处理有关系

37 2

Racoon科幻控,漫画翻译爱好者

2013-08-30 16:07

看了arstechnicatechcrunch的报道,应该就是定位在CoreText渲染引擎的问题了。摘录部分解读如下。

苹果iOS 6和OS X 10.8 系统中CoreText渲染引擎的bug,导致任何企图渲染这串阿拉伯字符的应用崩溃。因为WebKit用的就是CoreText,所以任何使用WebKit的应用都会受到波及,比如Safari。

这个问题只会影响到iOS 6 和 OS X 10.8,而不会影响到OS X 10.9 Mavericks 和 iOS 7 beta版。所以不管这串字符触发了什么问题,他们都不会对未来版本的引擎造成影响了。当然,这些修复帮不了那些还在用iOS6的用户。

最早公布这个问题的俄罗斯网站http://habrahabr.ru还暗示,这个问题苹果已经知道6个月了,但没有应对。

这不是第一次出现类似bug了,今年2月,有人发现,在Macs的应用中输入‘File:///’ 会导致引用崩溃。当时这个bug被定位为NSTextField问题。

说到底,就是“技术细节尚待披露”了。

25 2

万恶的星期二果壳问答运营经理,科技传播硕士

2013-08-30 15:51

今年上半年也发生过类似的情况啊:系统 Bug OS X Mountain Lion 中慎用‘F+ile:///’

系统 Bug OS X Mountain Lion 中慎用‘F+ile:///’
iSkuggy 2013-02-03 11:45

在周四下午一个非常蹊跷的 Bug 报告被提交给了苹果。据悉这个 Bug 就跟标题中所列的字符(引号内加号去掉)有关,你几乎只需要在 OS X 中任意应用的任意对话框中输入引号内的内容都将引起该应用的崩溃。

我们发现在 Tweetbot, Safari, Chrome, TextEdit 等其它很多应用中都出现这个情况,当然也有一很少使用的的应用不受影响。Bug 提交报告中猜测这可能是跟 OS X 内置的拼写检查有关,但是我们在没有拼写检查的 Safari 地址栏中输入这些依然会出现应用崩溃的情况,也就是说并不是因为这种拼写检查引起的问题。

为了确保大家在用 OS X 设备浏览的时候不会出现崩溃,我们特意将这个诡异的 Bug 引爆字符用图片的形式展示出来:

因为如果是正常字符的话,就可能会引起 OS X 用户此时使用的浏览器崩溃。

目前据我们了解这个 Bug 在所有运行 Mountain Lion 系统的 Mac 中都很容易被触发,而在 Lion 或者 Snow Leo
pard 下却并不会这样。

更新:网友[ID:47532]:TNW给出的临时解决办法: 在Language & Text 中 关掉 Text 选项卡中的 Correct spelling automatically 和 Use symbol and text substitution。

Source:9to5maciSkuggy

点评:在测试中我们发现,通过 Windows 电脑的 QQ 发送给 Mac QQ 用户后, Mac QQ 崩溃,再次打开后之前发送过来的特殊字符也不再显示。

18 1

我在另一个帖子(http://www.guokr.com/question/496989/#answer552950)里回答的,贴过来:


看上去是IOS6的complex text layout render engine的问题。在计算机中,阿拉伯文,天城文,越南文这类文字被称为complex text,主要的特征就是字符会因为所在的位置,或者附加符号而产生形变。比如阿拉伯文的同一个字母,会因为所处的位置有4种不同的形态。越南的国语字(Chữ Quốc Ngữ)虽然是以拉丁字母为基础,但是复杂的音调系统会造成字符变形,所以也属于complex text.

对于人来说,complex text就是一个死记硬背的过程。而对于计算机来说,就变成一个麻烦事儿。因为保存在存储器上的文本,无法直接逐字符呈现给用户看。举例比如梵文中佛陀(buddha)一词,存储的时候会逐字存储为
ब ु द ् ध五个字符,但是如果直接这么画出来,谁都看不懂。 所以这就需要一个complex text layout render engine,它的作用就是把存储的complex text组合后画出来,变成可以正常阅读的形式。 比如Windows下的uniscribe,就是这么个东西。

这个render engine依赖于两个东西来工作。第一是逐语言的规则。也就是说,藏文一套规则,阿拉伯文一套规则,印地语一套规则,梵文一套规则..... 所以包含了多少种语言的规则,就可以按规则对字符组合,画出来多少种语言的文字来。第二是字体文件内部的合字规则(ligature),OpenType和AAT字体支持ligature。

同样的,Unicode标准提供了一系列用于进行组合的字符,其中一部分就是为了支持complex text的。比如上面看到的ु ् 就是天城体中的元音附记。

那么绕回来,为什么IOS6可能出问题。看上去就是它的complex text layout render engine的规则出问题了。上边的字串中包含了3个Unicode组合字符。U+0310, U+0334, U+0337. 而不幸的是,这三个字符都不用于阿拉伯语。U+0310叫新月点,一般用于转写天城文,孟加拉文等时标记在拉丁字符上的。U+0334是用于国际音标中标记鼻化元音的那个小波浪线,学法语的同学肯定很熟悉。 U+0337是短删除线。 这几个字符都不是用在阿拉伯语中的。

所以当IOS6的engine(原谅我,懒得敲那么长了)在处理这一串字符的时候,会根据字符的范围,判定为阿拉伯字符,再根据字符出现的概率选择一种规则(这步可能没有,但是因为很多语言使用阿拉伯字符,比如乌尔都语,所以这步其实有必要),假定为选择了阿拉伯语规则。那么规则里发现找不到这三个组合字符,伤不起啊有木有! 然后,挂了.......

从程序猿角度来说,没有default fall through处理嘛,bug!

15 2

Joey_pp水处理研发工程师

2013-08-30 14:49

这个是真实的,发布在今天的乌云,算是0day漏洞了。
http://www.wooyun.org/bugs/wooyun-2013-035672

12 1

射秽主义溅射软件工程师,反病毒达人,数学控

2013-08-30 16:53

这个早先出现过(2012年就有了各种问题),QQ下用鼠标选中的话,能看见一大片蓝色。。。
别看这字符不长 但是其实编码很长。。。
涉及字符集的话 会有各种奇迹
很正常 我在Windows下使用UTF-8无BOM格式的文档,在linux下却给全部乱码(还需再转成UTF-8无BOM)一次。。。

CT下,CTFrameDraw(这就是一直以来总出现问题的地方)画出来文本后,文本段落占用的实际面积多数时候会小于rect,所以很多时候都会计算实际占用的rect(MAC和IOS这里略有区别),但据观察,这段文字明显是超出了预期rect,

  • CTLineGetTypographicBounds( CTLineRef line, CGFloat* ascent, CGFloat* descent, CGFloat* leading )
  • CTFramesetterSuggestFrameSizeWithConstraints ()

很有可能是取得绘制的RECT这些函数,但是有人验证了,有一些字体确实会导致BUG,然后输出的
宽和高会错误,字体边缘被丢弃等等。

就在刚才我还看到有人想开发阿拉伯语的应用,结果总是失败。。。。
还有一些人是输出失败、数据库出错,有人建议APP开发者使用IOS6提供的NSAttributedStrings来处理这些奇葩的字符。

这些了解一下就好了

总之还是谈谈IOS吧,移动操作系统不变的主旋律是
不要求新从众而更新或刷机,除非经过蓝猫培训本领过硬
移动操作系统在更新后,过一阵子才会有稳定版出现,现在出现BUG并不可怕,正可以帮助官方收集数据以更新到下一个版本


绕过锁屏、防盗神马的才比较让人揪心

12 2

非乌龟代数拓扑硕士,C#程序员

2013-08-30 15:19

查询了一下那串阿拉伯文字的Unicode编码,是下面这一大坨:

سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ

然后依然不知道发生了什么......

感觉这种漏洞的技术细节不太会随便向外界披露吧,或者说现在发现时间不久,后面会有更详尽的解释?

另外维基了一下Mac的阿拉伯字符编码,依旧啥也不知道...
http://en.wikipedia.org/wiki/MacArabic_encoding

11 2

通过字符串能够起作用的漏洞,我能想到的就是注入漏洞了。不过原生程序毕竟不是网页程序。
另外还有一个可能是字体渲染程序的Bug,对特殊的glyph无法处理。我猜是因为这样所以苹果才没有修,觉得不是很严重的漏洞。

不过在国外网站上看到的消息说,这个漏洞6个月前就已经报给apple了,但是他们没修复。。。。

另外这个漏洞对 OS X 10. 8 也有效,对iOS 7 和 OS X10.9 无效

7 2

今天发现了一条有关 iOS6 的bug, 只要在 iOS6的手机上出现某特定字符串,就会引起闪退,比如微信朋友圈,只要有人在朋友圈中发了那条指定字符串,他的朋友一打开朋友圈就会闪退,还有手机 QQ,短信,备忘录等,都会出现这种情况,据有人分析可能是因为 iOS6的字库有漏洞,导致只要显是该字符串就会出现闪退(未证实,不确定)
我就很好奇的开始了实验,首先通过MBP里面的备忘录,存了这条字符串,我的备忘录是通过 iCloud 同步的,然后从手机上打开备忘录,发现直接闪退...然后我准备通过网页版微信给自己发这条字符串,发现刚复制到对话框,网页直接崩溃...接着我在电脑上的 QQ 群里面发了这条字符串,通过手机 QQ 去看,手机 QQ 直接被废.我同事的手机升级了 iOS7,我让他给我发微信,他发给我之后我的微信也被废了,直接无法打开.然后他给我发短信,这条字符串通过推送出现在手机屏幕上的时候我的手机直接重启了,之后短信就无法打开,经过以上手贱的实验,发现这个漏洞实在是杀伤力巨大....总的原则就是只要你的手机显示了这条字符串,就会崩溃.
我说一下初步的解决方案,如果在朋友圈中有人发送了这条消息,那么可以等到你朋友圈中的其他人发的消息把该字符串给刷掉,也就是说只要你朋友圈中一个屏幕内没有这条字符串,就不会崩溃,但是当你往下翻,翻出了这条字符串,照旧会闪退,只有当发布该字符串的人删除了这条消息,才会没事.而如果对方是通过微信或者 手机 QQ 单独发送给你这条字符串,你需要删除微信或者 QQ,重新安装,目的是删除存在本地的聊天记录,只要手机不显示该字符串,就不会闪退.至于短信,让发送者给你再发一条短信,然后让另一个人也给你发一条短信,这样就能打开短信了,然后你把包含该字符串那个对话给删除就可以了
最彻底的解决方案就是升级 iOS7...但是需要开发者帐号,所以不具备普遍意义,我觉得如此严重的 bug,苹果应该会很快发布升级补丁,所以各位也不用惊慌,这个这个补丁从技术上推测应该是很简单解决的(楼主的手机已经彻底被自己玩坏掉了...现在正在升级 iOS7)

0 0

前几天看到的时候 我还去google translate翻译过这个东西是啥...

0 0

另外,这类bug一般可以用来做越狱的漏洞的

2 5
支持者: 艾特君 听梦说

国外网站有一个解答:http://answers.yahoo.com/question/index?qid=20130829120248AAMpK0B
基本回答是:
سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ means that you are summoning the spirit of mohammed. He will then possess your apple product and turn it into a bomb. Not only will it affect your product but he will then possess you and turn you into a terrorist. With mohammed possessing you, he will use the bomb to blow up your house, killing you and your entire family.
Source(s):
Statistics on سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ

作为一个苹果的开发者,看到这个问题,只能感叹发现这个漏洞的人真是牛B啊!

另外,我使用chrome搜这个代码,也会出现莫名其妙的奔溃,真是好奇害死猫啊╮(╯▽╰)╭

0 3

话说你们就不发什么
file:///
还有
سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ

0 4

奇怪,我同学6.1咋没事。微博有屏蔽功能?

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区