当前位置:主页>科 研>学术交流>

怎样解释OSX 10.8和iOS 6系统应用崩溃漏洞的原因?

之前Freebuf报道过这个资讯 OSX 10.8和iOS 6系统爆致应用崩溃的漏洞 ,前天在知乎上看到一个相对不错的成因贴,特转载分享。

崩溃的直接原因:

目前基本能确定是 OS X 和 iOS 的 CoreText 和 WebCore 框架在处理复杂文字编排时出现了 bug,导致应用甚至 iOS SpringBoard(就是 iOS 的桌面)崩溃。

这两个框架非常基础,绝大部分显示文字的地方都会用到,也就导致了短信、微信和 QQ 等应用在显示这些信息时会崩溃;而显示推送的消息时,SpringBoard 也会受连累而崩溃(需要重启手机才能继续正常使用)。

接着是这个 bug 出现的原因。

很遗憾 CoreText 并不是开源的,所以无法从源代码中查出原因。

但上文提到的复杂文字编排是套很复杂的机制,考虑到国内用户可能无法访问维基百科,我就简单解释下。

我们熟知的中英文字符的编排是非常简单的,一个文字对应一个字符,只要从左至右显示出来即可。

而阿拉伯字母、婆罗米系文字的天城文和泰语字母则不能简单地进行这样的编排,它们可能会进行如下变化:

方向可能是从右向左显示的。

多个字符可以组合成一个文字。

显示的顺序可能和逻辑顺序不一致。

由于某种原因,OS X 和 iOS 在某些特殊的字符组合下并没能正确地处理这种复杂的编排,而导致了程序崩溃。】

那么我们能做什么呢?

如果喜欢尝鲜的话,可以升级到 iOS 7 beta 和 OS X 10.9 beta,目前我只发现少数几种情况下仍会崩溃(大多数人不会遇到)。

如果 iOS 设备已越狱,可以去安装 @麦子龙 提到的补丁(也可在 Cydia 的 178 源搜索「阿拉伯」),目测对于不需要复杂文字编排的用户不会有问题。

对于 QQ,只要不查看该消息即可。

对于微信,我的处理方式是让对方再发一条正常的信息,然后卸载并重装(会丢失聊天记录)。微信朋友圈比较好办,只要看不到那条信息即可(叫对方删除,等其他人刷朋友圈把那条消息踩下去,自己发张图片把对方的消息踩下去,或拉黑对方都可)。

对于短信,据说让对方再发一条正常的信息即可。(我没收到过,无法确认。)

对于其他应用(例如新浪微博、Twitter、邮件),可以登录网页版删除或屏蔽。

如果 OS X 的 Chrome 或 Safari 打开网页崩溃,可以使用 FireFox 代替。

还有对那些恶意捉弄你的人,该骗顿饭、断绝关系、打官司什么的请自行处理。

那么服务提供商们又该做些什么呢?

知乎的员工今天很头疼,因为绝大多数人用的都是 OS X 10.8 + Chrome / Safari 的组合,遇到这玩意几乎全军覆没,发封邮件报告这个 bug 都会导致接收者的邮件客户端崩溃。

所以知乎很快对这些字符进行了处理,让这些文字使用 Arial 字体显示,就不会崩溃了。(目前已知 Arial 和 Tahoma 字体不会导致崩溃,其他我未测试。)

知乎客户端也用符号代替了这些字符,以避免崩溃。

知乎日报客户端则在用户发表评论时禁止提交这类字符,避免其他人查看评论时崩溃。

至于苹果,就看它什么时候更新了。考虑到 iPhone 5S 马上要出了,可能就不会发布 iOS 6 的更新补丁,而是直接发布 iOS 7 了。而 OS X 10.8.5 是肯定会出的,就看修 bug 的速度了。

而对于越狱开发者来说,则可能又是一个找越狱漏洞的机会。(不过看上去是很难支持 iOS 7 了。)

有些要纠正的:

1. 一个 unicode 字符编码成 UTF-8 后,可能占 1~6 个字节(U+0000 ~ U+ 7FFFFFFF)。但 RFC 3629 又将字符范围减少到 U+0000 ~ U+ 10FFFF,这样其实最多只要占用 4 个字节。其中,一个中文字符会占用 3 个字节。

2. 多个 unicode 字符可以组合成一个文字。简单来说,一个汉语拼音可以看成一个英文字母和一个声调的组合,它虽然是一个文字,却是两个 unicode 字符。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部