写点什么

Firefox 现安全漏洞,Mozilla 发布紧急更新

  • 2020 年 4 月 09 日
  • 本文字数:1286 字

    阅读完需:约 4 分钟

Firefox 现安全漏洞,Mozilla 发布紧急更新

近日,Mozilla 发现了一个安全漏洞,并于 4 月 3 日发布了 Firefox 74.0.1 以修复该漏洞,该漏洞涉及到了 Firefox 普通版和长期支持版(ESR),所以有理由推测这个漏洞在 2019 年发布 Firefox 68 ESR 时就已经存在其中了。


紧急发布更新

几天前,Mozilla 为 Firefox 浏览器推出了新的版本 Firefox 74.0.1,以修补可能被利用的安全漏洞。普通版 Firefox 需要从 74.0 更新到 74.0.1,如果是 Firefox ESR 版本的用户,需要从 68.6.0 更新到 68.6.1。Tor 浏览器也随之发布了新版本,需要从 9.0.7 升级至 9.0.8。


目前,Mozilla 并没有公布有关于该安全漏洞的详细信息,包括何时发现该漏洞,攻击者会如何利用该漏洞进行攻击,目前为止因此漏洞被攻击的人数有多少等等,Mozilla 只提到了一点:



值得注意的是,这两个漏洞 Mozilla 都提示发现了相关针对性的在野利用攻击,在漏洞被利用时极可能为 0day 状态。根据奇安信的分析来看,该漏洞主要是通过诱导用户点击存有安全隐患的页面从而获取用户电脑的控制权。



图片来源于奇安信


什么是 Use-after-free 漏洞

Use-after-free 漏洞,也称为 UAF 漏洞,即释放后重用。


大致原理就是:申请出一个堆块保存在一个指针中,在释放后却没有将该指针清空,形成了一个悬挂指针,而后再申请出堆块时会将刚刚释放出的堆块申请出来,并复写其内容,而悬挂的指针此时仍可以使用,结果出现了不可控的情况,而攻击者就是利用这个漏洞控制函数指针,进而劫持程序执行流。


攻击者可以利用 UAF 漏洞对用户造成一些任意内存的修改,可能会造成任意内存的读取,可能会读取用户的 cookie 或是页面请求被修改,严重的能够造成任意命令的执行,获得 shell,而造成的影响还是要取决于被释放的指针是怎么使用的。


如何避免 UAF 漏洞

早在 2018 年 12 月,Mozila 发布的 Firefox 64 就曾出现过一个与 select 元素有关的 UAF 漏洞问题,漏洞名称为 CVE-2018-18492。去年 3 月,Google 也曾披露两个漏洞,其中 Chrome 的漏洞名称为 CVE-2019-5786,还有一个存在于 Microsoft Windows 中。去年 10 月,WhatsApp 也出现了 UAF 漏洞,名称为 CVE-2019-11932。


UAF 漏洞虽然不易造成过于严重的后果,但想要完全解决这个问题也并非易事,那么如何解决这个问题呢?Tarjei Mandt 在他的论文中提到了解决方案,大致如下:


Windows 系统中有一个名为 IoCompletionReserve 的对象,大小为 0x60,可以通过 NtAllocateReserveObject 申请出来,需要做的是:


  1. 首先申请 0x10000 个该对象并将指针保存下来;

  2. 然后再申请 0x5000 个对象,将指针保存下来;

  3. 第二步中的 0x5000 个对象,每隔一个对象释放一个对象;


原理在于通过第一步的操作将现有的空余堆块都申请出来,而第二步中申请的堆块都应是连续的,再通过第三步的操作,使用户申请 Use-after-free 结构体前面没有空闲的堆块,因此在释放的时候不会合并,再分配的时候基本上不会出现意外。


Tarjei Mandt 的论文《Kernel Pool Exploitation on Windows 7》:


https://media.blackhat.com/bh-dc-11/Mandt/BlackHat_DC_2011_Mandt_kernelpool-wp.pdf


延伸阅读:


https://www.mozilla.org/en-US/security/advisories/mfsa2020-11/#CVE-2020-6819


2020 年 4 月 09 日 13:592579
用户头像
李俊辰 InfoQ编辑

发布了 228 篇内容, 共 65.2 次阅读, 收获喜欢 268 次。

关注

评论

发布
暂无评论
发现更多内容

redis优化系列(二)Redis主从原理、主从常用配置

乌龟哥哥

4月月更

解锁OpenHarmony技术日!年度盛会,即将揭幕!

OpenHarmony

大会 OpenHarmony

将新增和编辑的数据同步更新到列表

岛上码农

flutter ios开发 安卓开发 4月月更 跨平台开发

Android HTTP通信基础

小小Code

android 面试 移动开发

世界读书日:我想推荐这几本书

宇宙之一粟

书籍推荐 书单 4月月更

Android SDK 开发应该注意哪些?

小小Code

android 面试 移动开发

Android 记事本功能的简单实现

小小Code

android 面试 移动开发

k8s client-go源码分析 informer源码分析(1)-概要分析

良凯尔

Kubernetes 容器 云原生 Client-go

[Day23]-[数据结构]手写LRU

方勇(gopher)

LeetCode LRU 数据结构算法

python 包之 BeautifulSoup 网页解析教程

autofelix

Python 4月月更 BeautifulSoup

甲辰篇 創世紀《「內元宇宙」聯載》

因田木

元宇宙 貴人網 電子書

Android 清理后台进程

小小Code

android 面试 移动开发

android 计算所在周所在月的前后日期

小小Code

android 面试 移动开发

2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)

小小Code

android 面试 移动开发

Android Camera开发实践(1)预览

小小Code

android 面试 移动开发

Android-体系化知识图谱:该如何入门Android开发?该如何进阶

小小Code

android 面试 移动开发

Android TextView的属性与应用

小小Code

android 面试 移动开发

解决方案架构师的小锦囊 - 架构图的 5 种类型

亚马逊云科技 (Amazon Web Services)

技术 职业 亚马逊云科技

在docker上编译openjdk8

程序员欣宸

Java JVM 4月月更

Plato Farm-以柏拉图为目标的农场元宇宙游戏

西柚子

2020年最新字节跳动Android开发者常见面试题及详细解析

小小Code

android 面试 移动开发

Android 存储空间的最佳实践

小小Code

android 面试 移动开发

Android-Sensor源码分析总结

小小Code

android 面试 移动开发

5道刁钻的Activity生命周期面试题,学完去吊打面试官!

小小Code

android 面试 移动开发

9419页最新一线互联网Android面试题解析大全

小小Code

android 面试 移动开发

顶级元宇宙游戏Plato Farm,近期动作不断利好频频

小哈区块

Android 面试主题集合整理

小小Code

android 面试 移动开发

初探 Lambda Powertools TypeScript

亚马逊云科技 (Amazon Web Services)

typescript Serverless Lambda AWS

我是如何用 Amazon Serverless 创建一个门铃的

亚马逊云科技 (Amazon Web Services)

Serverless Lambda AWS showdev

采用百度飞桨EasyDL完成指定目标识别

DS小龙哥

4月月更

Android Studio APK在真机上运行的方法

小小Code

android 面试 移动开发

Firefox 现安全漏洞,Mozilla 发布紧急更新_前端_李俊辰_InfoQ精选文章