V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Firefox

Firefox 在 2015 年 8 月 7 日爆了一个重大漏洞,请大家尽快更新

  •  
  •   Livid · 2015-08-07 21:17:44 +08:00 · 6356 次点击
    这是一个创建于 3398 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Mozilla 的官方说明:

    https://blog.mozilla.org/security/2015/08/06/firefox-exploit-found-in-the-wild/

    如果你是 Firefox 的重度用户,请尽快更新。
    第 1 条附言  ·  2015-08-08 02:21:09 +08:00
    发生安全问题的 pdf.js 组件是在 Firefox 19 里被引入的,而 Firefox 19 的发布日期是 2013 年初。所以这个漏洞已经存在了两年了?

    https://wiki.mozilla.org/RapidRelease/Calendar
    58 条回复    2015-08-15 21:47:39 +08:00
    Radeon
        1
    Radeon  
       2015-08-07 21:21:17 +08:00   ❤️ 2
    如果 Firefox/Google Chrome/Safari 仍然坚持不进MAS,这种事情还会一再上演。或者机智的用户可以用AppArmor/SELinux自保先
    FrankFang128
        2
    FrankFang128  
       2015-08-07 21:25:06 +08:00 via Android
    @Radeon 必然会坚持不上 MAS 呀
    caizixian
        3
    caizixian  
       2015-08-07 21:29:28 +08:00
    @FrankFang128
    @Radeon 求教浏览器有什么东西一定要在沙盒之外跑?

    感觉硬件加速什么的可以调系统给的接口啊。
    Radeon
        4
    Radeon  
       2015-08-07 21:31:11 +08:00
    @caizixian 浏览器当然应该在沙盒里跑,不在沙盒里跑一定会悲剧的
    honeycomb
        5
    honeycomb  
       2015-08-07 21:31:41 +08:00
    @Radeon mas是什么?
    Livid
        6
    Livid  
    MOD
    OP
       2015-08-07 21:31:56 +08:00
    @honeycomb Mac App Store
    xzchina
        7
    xzchina  
       2015-08-07 21:33:25 +08:00
    等TETE009版本的更新,刚去网站看了TETE还没更新
    caizixian
        8
    caizixian  
       2015-08-07 21:33:28 +08:00
    @Radeon AppArmor好,个人感觉配置比SELinux上手快
    honeycomb
        9
    honeycomb  
       2015-08-07 21:34:17 +08:00
    @Radeon 可是Chrome/Safari自带沙盒
    Radeon
        10
    Radeon  
       2015-08-07 21:34:48 +08:00
    @caizixian 显然是AppArmor好啊。SELinux一是NSA开发的,这也能信啊?二是SELinux的规则太复杂了,一个安全系统的规则如果过于复杂的话,一定会配置出错的
    caizixian
        11
    caizixian  
       2015-08-07 21:36:59 +08:00
    @honeycomb 多保险总没错,Chrome/Chromium在Linux也有AppArmor/SELinux保护的
    Radeon
        12
    Radeon  
       2015-08-07 21:37:09 +08:00
    @honeycomb Chrome/Safari的沙盒是自调沙盒API的做法,远没有MAS软件通过系统强制的、全程进沙盒的方式保险。实际上你打开Activity Monitor,Chrome/Safari的sandbox那一列都是"No"
    Radeon
        13
    Radeon  
       2015-08-07 21:38:48 +08:00
    @caizixian 据我所知Chromium在很多发行版上默认是没有SELinux/AppArmor保护的,Firefox也没有
    caizixian
        14
    caizixian  
       2015-08-07 21:43:22 +08:00
    Livid
        15
    Livid  
    MOD
    OP
       2015-08-07 21:44:44 +08:00
    这个漏洞目前主要是在各种广告网络上被利用,所以类似 uBlock 这样的插件,对防御类似问题可能会有一定帮助:

    https://www.ublock.org/
    Radeon
        16
    Radeon  
       2015-08-07 21:46:38 +08:00
    @caizixian 默认没有启用AppArmor
    Radeon
        17
    Radeon  
       2015-08-07 21:48:39 +08:00
    @caizixian 看脚注2 “Will be disabled by default and be opt-in for advanced users”
    honeycomb
        18
    honeycomb  
       2015-08-07 21:51:03 +08:00
    @Livid 谢谢,不该这么不经大脑就问,其实稍微搜一下就明白了
    @caizixian 基本看不懂Android里用的SELinux规则
    caizixian
        19
    caizixian  
       2015-08-07 21:52:08 +08:00
    @Radeon 好吧,我是系统一装完就开了

    @Livid 如果像report里说的那样拿.bash_history 或者搜索带有credential的文件的话,问题就很严重了。
    Livid
        20
    Livid  
    MOD
    OP
       2015-08-07 21:54:54 +08:00
    为了防止将来 PDF.js 又爆什么其他的漏洞,可以从 Firefox 的 about:config 里将其彻底禁用:

    about:config

    pdfjs.disabled => true
    PP
        21
    PP  
       2015-08-07 22:02:00 +08:00
    RAKE
        22
    RAKE  
       2015-08-07 22:05:11 +08:00
    平时不浏览什么羞羞的网站就好了 XD
    breeswish
        23
    breeswish  
       2015-08-07 22:27:16 +08:00
    @Radeon 然而即使用了沙盒也无法避免这个 exploit。即使有沙盒,通过这个 exploit 也可以实现读取 Firefox 所有可以读取的内容,例如你保存下来的 Cookie 在磁盘上存储的文件。沙盒只能避免它读取到用户文件。
    LPeJuN6lLsS9
        24
    LPeJuN6lLsS9  
       2015-08-07 22:33:23 +08:00
    从31ESR升级到38ESR了,然后莫名地不停崩溃,真是逼死老用户……
    Radeon
        25
    Radeon  
       2015-08-07 23:09:12 +08:00
    @breeswish 这个是利用FF读 ~/.ssh/ ,正好是沙盒可以阻止的
    ryrubyy
        26
    ryrubyy  
       2015-08-07 23:21:57 +08:00
    漏洞还是稍微严重的,不过文章下面的评论很欢乐- -
    zro
        27
    zro  
       2015-08-07 23:38:07 +08:00
    本来还想着等39.01出了才更下38.01,哪知道今天一开机就跳39.03的了,更完才知道是这回事
    avrillavigne
        28
    avrillavigne  
       2015-08-08 00:00:41 +08:00
    @hantsuki ESR 31.8 不会升级了么 ?
    typcn
        29
    typcn  
       2015-08-08 00:38:18 +08:00
    @Radeon OpenGL 里面有相当多的函数是私有 API,如果想硬件加速,除了使用系统自带的那些库 metal 什么的 创建动画,否则是不可能的。 还有 审核规范里面,并不允许非 Safari 内核的浏览器通过审核。

    要喷就喷苹果去吧
    honeycomb
        30
    honeycomb  
       2015-08-08 00:52:39 +08:00
    @Livid

    ublock这种起到缓解的作用
    因为比较严格的屏蔽策略是白名单,导致广告代码压根就没有被下载

    pdf.js没有丢到沙盘里觉得不安全呢

    @breeswish
    不知道AppContainer是否能缓解此类攻击
    honeycomb
        31
    honeycomb  
       2015-08-08 00:56:13 +08:00
    @typcn

    全程沙盘肯定会导致很多函数用不了
    所以不管是Chrome还是IE(安全模式/AppContainer)/Edge(AppContainer)都至少有一个中等完整性进程来执行高权限代码
    imn1
        32
    imn1  
       2015-08-08 01:22:12 +08:00
    @avrillavigne
    因为33/34时界面有了部分变化,一些扩展、脚本不兼容,直接从31到38会有问题
    Radeon
        33
    Radeon  
       2015-08-08 09:45:24 +08:00
    @honeycomb Sleipnier这种全程沙盘的还不是好好的
    LPeJuN6lLsS9
        34
    LPeJuN6lLsS9  
       2015-08-08 10:12:01 +08:00
    @avrillavigne 得自己手动换大版本的,关于ESR的介绍里有个版本图
    canautumn
        35
    canautumn  
       2015-08-08 10:15:38 +08:00
    好像非webkit的浏览器不能进MAS,再者说,sandbox和MAS是俩不同的概念,进MAS必须sandboxed,但是不进MAS也可以sandboxed。
    Khlieb
        36
    Khlieb  
       2015-08-08 11:13:45 +08:00 via Android
    @ryrubyy @Radeon
    Firefox 修补漏洞还是迅速
    metalbug
        37
    metalbug  
       2015-08-08 12:19:12 +08:00
    palemoon64飘过,貌似没有更新
    Radeon
        38
    Radeon  
       2015-08-08 13:01:40 +08:00
    @canautumn Opera进过MAS的
    canautumn
        39
    canautumn  
       2015-08-08 13:15:31 +08:00
    @Radeon 那个时候估计还没有强制sandbox。不过话说回来,如果有一天Mac像iOS一样强制sandbox(虽然不可能),这些浏览器也会搞出来一个可以sandbox的版本来上架的,比如WebKit套个壳。
    lcj2class
        40
    lcj2class  
       2015-08-08 13:47:27 +08:00
    问个弱的问题,

    既然pdf.js是完全用js实现的,他是怎么读取本地文件的呢?

    是利用html5的API吗?是不是还有什么其他方式?

    http://www.html5rocks.com/en/tutorials/file/dndfiles/
    wikinee
        41
    wikinee  
       2015-08-08 13:57:31 +08:00 via iPhone
    @Livid 跪了,这么简称啊!
    Radeon
        42
    Radeon  
       2015-08-08 14:57:16 +08:00
    @canautumn MAS里的美服的Opera是有sandbox的,不过现在好像下架了
    Radeon
        43
    Radeon  
       2015-08-08 14:58:32 +08:00
    @lcj2class 肯定是利用漏洞劫持JavaScript解释器啊,JavaScript解释器有进程的所有权限,可以读几乎所有本地文件
    icylogic
        44
    icylogic  
       2015-08-08 16:38:16 +08:00
    重度用户一直在用 Beta 版。。因为 Beta 才有 Win64 版本可用。。
    chengzhoukun
        45
    chengzhoukun  
       2015-08-08 17:19:33 +08:00 via Android
    patr0nus
        46
    patr0nus  
       2015-08-08 18:28:36 +08:00
    @Radeon MAS 只是强制 sandbox,不强制浏览器引擎的,只要你的引擎能在 Sandbox 下正常工作就行。
    lsmgeb89
        47
    lsmgeb89  
       2015-08-08 19:44:33 +08:00
    @icylogic Win64 的版本有 flash 吗?
    icylogic
        48
    icylogic  
       2015-08-08 20:38:17 +08:00
    @lsmgeb89 有啊,只是我禁用了,我除了在 Windows bilibili 客户端,平时也不看别的视频。。
    Radeon
        49
    Radeon  
       2015-08-08 21:40:24 +08:00
    @patr0nus 是的。我知道
    RqPS6rhmP3Nyn3Tm
        50
    RqPS6rhmP3Nyn3Tm  
       2015-08-08 21:56:14 +08:00 via iPad
    安全问题个人感觉大部分还是靠用户自身的使用习惯。像 Google 这种大厂,想来不会干什么坏事。Firefox 就更方便了,自己看源码去。

    要是哪天 OS X 也强制沙盒,我可能会把电脑给砸了……
    RqPS6rhmP3Nyn3Tm
        51
    RqPS6rhmP3Nyn3Tm  
       2015-08-08 21:57:02 +08:00 via iPad
    话说真希望 Flash, Java 这种猪队友能强制沙盒……
    lcj2class
        52
    lcj2class  
       2015-08-09 17:22:58 +08:00
    @Radeon
    不知道你是如何得出这个结论的,mozilla官方博客上这样写道:

    The vulnerability comes from the interaction of the mechanism that enforces JavaScript context separation (the “same origin policy”) and Firefox’s PDF Viewer. Mozilla products that don’t contain the PDF Viewer, such as Firefox for Android, are not vulnerable. The vulnerability does not enable the execution of arbitrary code but the exploit was able to inject a JavaScript payload into the local file context. This allowed it to search for and upload potentially sensitive local files.

    个人觉得应该是利用了same origin policy机制,让inject的js代码(后面简写inject.js)与pdfjs的代码属于同一origin
    跟js解释器没什么关系,但是我还是不大明白什么机制,inject.js是如何利用了pdf.js的local context,来搜索本地的文件的呢?据我所知,JS中并没有读取本地文件系统的API。

    请指教。谢谢

    BTW
    HN的讨论这个话题的这个帖子,https://news.ycombinator.com/item?id=10021376

    http://linustechtips.com/main/topic/426099-firefox-pdf-viewer-exploit-used-to-access-local-files-already-patched/


    @patr0nus
    breeswish
        53
    breeswish  
       2015-08-10 14:58:16 +08:00
    @Radeon 这个漏洞可以用来读取其他文件:沙盒可以阻止浏览器读取 ~/.ssh,然而并不能阻止恶意脚本读取浏览器在沙河下就可以读取的内容比如存储的 cookie database、history 之类… 有了沙盒影响确实是小很多了,不能任意读取,不过仍然是一个「重大漏洞」——沙盒并不能从根源上避免这个漏洞出现 :-(
    Radeon
        54
    Radeon  
       2015-08-10 15:16:23 +08:00
    @lcj2class https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
    这里面有很多可以读用户文件系统的API,只要local file context被改写的话
    lcj2class
        55
    lcj2class  
       2015-08-10 22:21:01 +08:00
    @Radeon
    这个我知道,主要是这里需要用<input type='file'>来选择文件,好奇他是怎么用js在后台调用这个的
    avrillavigne
        57
    avrillavigne  
       2015-08-13 00:41:06 +08:00
    昨天已经被强制从ESR31.8.0更新到了ESR 38.2.0 右键菜单让我强迫症病发了。
    LPeJuN6lLsS9
        58
    LPeJuN6lLsS9  
       2015-08-15 21:47:39 +08:00
    @hantsuki 我错了,漏洞发现这天或者前几天我在31ESR检查更新没发现更新,就想当然
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5780 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 03:02 · PVG 11:02 · LAX 19:02 · JFK 22:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.