标签: 内核漏洞

macOS 被曝内核存在高危漏洞

谷歌 Project Zero 团队曝光了 macOS 内核中存在的一个写时复制高危漏洞。 macOS 的内核 XNU 在某些情况下允许写时复制(copy-on-write,COW)行为,COW 是一种本质上没有缺陷的资源管理技术,它有一个重要的作用是可以保护复制的内存以防后续通过源程序修改,避免源进程被利用双读。但是在 macOS 这里 COW 似乎出了问题。 研究人员表示,这种写时复制行为不仅适用于匿名内存,也适用于文件映射。这意味着,目标进程开始从转储存储区读取后,内存压力会导致保持转储内存的页面从页面缓存中被逐出。而被逐出的页面需要再次使用时,可以从后台文件系统重新加载。 macOS 允许普通用户挂载文件系统镜像,而如果修改用户已挂载文件系统镜像,该行为并不会被通知给虚拟管理子系统。也就是说攻击者可以在不发出通知的情况下改变磁盘文件虚拟管理子系统。 详细的概念验证可以查看: https://bugs.chromium.org/p/project-zero/issues/detail?id=1726&q= 谷歌的 Project Zero 团队以发现各个公司产品的安全漏洞而闻名,其成员在软件中找到安全漏洞,私下向制造商报告,并在公开披露之前给他们 90 天的时间来解决问题。据 neowin 网站介绍,此次关于 macOS 的这个漏洞,团队发现于 2018 年 11 月,但是 90 天内苹果公司并未作出回应,于是研究人员将其公开。目前苹果已经着手与 Project Zero 联合开发相应补丁。     (稿源:开源中国社区,封面源自网络。)

Linux 内核曝 TCP 漏洞,极小流量就可以 DoS 瘫痪设备

卡内基梅隆大学的 CERT/CC 发出警告,称 Linux 内核 4.9 及更高版本中有一个 TCP 漏洞,该漏洞可使攻击者通过极小流量对系统发动 DoS (Denial-of-Service,拒绝服务)攻击。 该漏洞是由诺基亚贝尔实验室支持的芬兰阿尔托大学网络部门的 Juha-Matti Tilli 发现的,目前已经被编号为 CVE-2018-5390,并且被 Red Hat 称为“SegmentSmack”。 CERT/CC 指出,由于漏洞,新版本 Linux 内核可能被迫对每个传入的数据包进行非常消耗资源的 tcp_collapse_ofo_queue()和 tcp_prune_ofo_queue()调用,这会导致受影响的系统上 CPU 变得饱和,从而产生 DoS 条件。 远程攻击者可以以相对较小的传入网络流量带宽通过在正在进行的 TCP 会话中发送特别修改的数据包来导致 DoS。“在最糟糕的情况下,攻击者可以仅使用小于 2kpps (每秒 2000 个数据包)的攻击流量让被害主机瘫痪”,Red Hat 解释到:“四个流的攻击结果可能看起来像是四核 CPU 完全饱和,并且网络数据包处理被延迟。” CERT/CC 列出了许多可能受到影响的网络设备供应商、PC 和服务器制造商、移动供应商和操作系统制造商(具体列表),鉴于 Linux 的广泛使用,该漏洞的影响范围很大,包括从亚马逊和 Apple 到 Ubuntu 和 ZyXEL 的每个供应商。目前已确认受影响的 Red Hat 系统包括 RHEL 6 和 7、RHEL 7 for Real Time、RHEL 7 for ARM64、RHEL 7 for IBM POWER 和 RHEL Atomic Host。 Red Hat 表示,对于管理员来说,除了等待内核修复,目前还没有有效的解决方法或缓解措施。   稿源:开源中国,封面源自网络;

潜伏 11 年的 Linux 内核提权漏洞(CVE-2017-6074)曝光

Linux 内核近日又曝出权限提升漏洞,该漏洞可追溯至 2005 年,漏洞影响 Linux 操作系统主要发行版本,包括 Redhat、Debian、OpenSUSE 和 Ubuntu。利用该漏洞,攻击者可以从低权限进程中进行内核代码执行。目前已知受影响的最老版本是 2.6.18(2006 年 9 月),不过该漏洞可能在先前的版本中已经存在,或许从支持 DCCP 开始( 2005 年 10 月的 2.6.14)就已经存在问题了。 在 Seclists.org 发布该漏洞的作者 Andrey Konovalov 表示,很快就会放出 PoC,在此期间给予修复时间。 安全研究员 Andrey Konovalov 最近用 Syzkaller fuzzing 工具,发现了 DCCP 协议实现中的 Linux 内核漏洞,漏洞潜伏时间超过 10 年。 DCCP协议 DCCP协议是面向消息的传输层协议,可最小化数据包报头带来的开销和终端处理的工程量。该协议可建立、维护和拆卸不可靠连接的数据流以及对不可靠数据流进行拥塞控制。 该 DCCP 双重释放漏洞可允许本地低权限用户修改 Linux 内核内存,导致拒绝服务(系统崩溃),或者提升权限,获得系统的管理访问权限。 漏洞详情 这是个 UAF 漏洞:在 IPV6_RECVPKTINFO 开启的情况下,内核解析DCCP 协议的流程中判断已经收到了 DCCP_PKT_REQUEST 返回包,就会释放解析过程使用的 SKB 地址。(“DCCP protocol implementation freed SKB (socket buffer) resources for a DCCP_PKT_REQUEST packet when the IPV6_RECVPKTINFO option is set on the socket.”) 按现在的实现,解析 DCCP 协议的流程中如果 dccp_v6_conn_request 有返回值,就会通过 dccp_rcv_state_process 中的 __kfree_skb 释放掉解析过程中收到了 DCCP_PKT_REQUEST 返回包的 SKB 地址。但是,如果 IPV6_RECVPKTINFO 开启的情况下编译内核,skb 地址就会被存储在 ireq->pktopts,而 dccp_v6_conn_request 中的引用计数会增加,这样 skb 就仍然会被使用。直到 dccp_rcv_state_process 进程中才会被释放。 攻击者使用某些内核堆喷射技术就能控制任意对象,并用任意数据重写其内容。如果重写过的对象中包含任何可触发的函数指针,攻击者便可在该内核中执行任意代码。这个漏洞并不是远程代码执行漏洞,所以攻击者必须拥有系统本地账户,才能利用该漏洞。 两个月前,Linux内核也曝出了类似的提权漏洞CVE-2016-8655,该漏洞可以追溯到2011年,低权限本地用户利用Linux内核af_packet实现中的竞争条件,可获得root权限(漏洞详情)。 修复方案 手动修复:调用consume_skb,而非跳转discard并调用__kfree_skb。 更详细的修复方案请点击这里。如果你是高级Linux用户,那么可以应用补丁,重新构建内核,或者等待发行商发布更新。 稿源:FreeBuf, 由 FB 小编 kuma 编译;封面源自 FreeBuf