Linux 内核漏洞集
2017-06-16 11:01:35 阿炯

Linux惊现四个高危内核漏洞:

2016年6月消息,启明星辰ADLab(积极防御实验室)发现Linux内核存在四个极度危险的漏洞--代号“Phoenix Talon”(CVE编号:CVE-2017-8890、CVE-2017-9075、CVE-2017-9076、CVE-2017-9077)。经研究这些漏洞在Linux内核中至少已经存在了11年,几乎影响了这11年间发布的所有Linux内核和对应的发行版本以及相关国产系统。

漏洞危害:Linux存在着许多不同的版本,比如Redhat、Centos、Ubuntu、Suse,包括很多国产化操作系统也使用了Linux内核。Linux凭借其开源和安全性的优势,常被用作网站、游戏、应用服务器的操作系统。除此之外Linux可以运行在多种硬件平台上,比如X86服务器、台式计算机、网络设备、平板电脑、机顶盒、游戏机等。

“Phoenix Talon”漏洞可被攻击者利用来发起DOS攻击,且在符合一定利用条件的情况下可导致远程代码执行,包括传输层的TCP、DCCP、SCTP以及网络层的IPv4和IPv6协议均受影响。如攻击者利用该漏洞发起攻击可导致部署Linux操作系统的网站服务器、应用服务器、中间服务器宕机或被控制!

这些漏洞中以CVE-2017-8890最为严重,该漏洞一举拿下了Linux内核漏洞两个评分标准的史上最高分: CVSS V2评分达到满分10.0,CVSS V3评分是历史最高分9.8,由此可见该漏洞的恐怖程度!!!

受影响的内核版本:Linux kernel 2.5.69~4.11的所有版本都受“Phoenix Talon”影响。官方已经发布了修复该问题的补丁,可通过升级Linux内核修复“Phoenix Talon”相关漏洞。

使用 Grsecurity/PaX 对内核进行加固。Phoenix Talon在Linux内核中潜伏长达11年之久,影响范围非常广泛,漏洞如被利用,其攻击代码无法在网络层进行有效检测,因此请广大用户及时对该漏洞进行检测并给存在问题的系统内核打上补丁,避免遭受该漏洞导致的网络安全事件!

上文源自:启明星辰

Linux严重提权漏洞集

谷歌将资助两名全职 Linux 内核安全开发人员

2021年2月26目消息,谷歌已与 Linux 基金会达成合作,谷歌将赞助两名专职开发人员,使其仅专注于 Linux 内核安全性开发。这两名专职维护人员分别是 Gustavo Silva 和 Nathan Chancellor。根据 Linux 基金会的说法,他们将专门维护和改进内核安全及相关专案,以确保这个世界上最普遍的开源软件项目在未来几十年内可持续发展。

该决定基于 Linux 基金会的开源安全基金会(OpenSSF)和哈佛大学创新科学实验室(LISH)进行的一项调查而做出。该调查发现,Linux 操作系统还需要进行更多的安全工作。谷歌资深软件工程师 Dan Lorenc 称:“在谷歌,安全始终是首要任务,我们了解它对开源软件的可持续性起着至关重要的作用。我们很荣幸支持 Gustavo Silva 和 Nathan Chancellor 共同努力提高 Linux 内核的安全性。”

两名维护人员中,其中 Chancellor 已有 4 年半的核心开发人员经验,并于两年前开始在 ClangBuiltLinux 项目下为主线 Linux 做出贡献。接下来,Chancellor 的工作将专注于对 Clan /LLVM编译器发现的所有错误进行分类和修复,以及建立持续集成系统以支持正在进行的工作。他还计划添加一些其他功能,并使用这些编译器技术完善内核。Chancellor 称,希望更多的人开始使用 LLVM 编译器,因为“这将大大改善每个人的 Linux 安全性。与此同时,Silva 的安全工作则致力于通过将 zero-length 和 one-element arrays 的所有实例转换为 flexible-array members 来消除几类缓冲区溢出。以及在 bug 出现之前将其修复,同时还积极开发可消除所有漏洞的防御机制。

Linux 基金会的开源供应链安全总监 David A. Wheeler 表示,“确保 Linux 内核的安全性非常重要,因为它是现代计算和基础架构的关键部分。它需要我们所有人以任何方式提供帮助,以确保它的可持续安全性。我们特别感谢谷歌承保 Gustavo 和 Nathan 的 Linux 内核安全开发工作,并感谢所有使 Linux 内核在全球范围内取得成功的维护者、开发人员和组织。”

Linux 发现和修复虚拟套接字实现中的安全漏洞

2021年3月初,来自俄罗斯 Positive Technologies 公司 Linux 安全开发人员 Alexander Popov 发现并修复了 Linux 内核虚拟套接字实现中的五个安全漏洞,攻击者可以利用这些漏洞 (CVE-2021-26708)获得 root 权限,并通过拒绝服务(DoS)攻击服务器。这些漏洞在加入虚拟套接字多传输支持时出现,这种网络传输促进了虚拟机(VM)与其主机之间的通信。它通常被代理和管理程序服务使用,这些服务需要一个独立于虚拟机网络配置的通信通道。因此,在云上运行虚拟机的人(现在几乎所有人都是这样)特别容易受到影响。

漏洞的核心问题是内核驱动 CONFIG_VSOCKETS 和 CONFIG_VIRTIO_VSOCKETS 的竞争。在所有主流 Linux 发行版中,这些驱动都是作为内核模块出厂的。之所以会出现如此严重的问题,是因为每当普通用户创建一个 AF_VSOCK 套接字时,这些易受攻击的模块就会被自动加载。当系统的实质行为取决于不可控事件的顺序或时间时,就会存在竞争。不过,目前这些漏洞已经通过补丁修复,并被合入主线分支中。红帽企业 Linux(RHEL)8、Debian、Ubuntu 和 SUSE 等流行的 Linux 发行版也采用了该补丁。该漏洞的通用漏洞评分系统(CVSS)v3 基础分值为 7.0,严重程度为高,因此建议用户尽快进行系统更新。

Linux 内核iSCSI子系统漏洞让攻击者获得 root 权限

2021年3月消息,在 Linux 内核的 iSCSI 子系统中发现的三个漏洞可能会允许具有基本用户权限的本地攻击者在未打补丁的 Linux 系统上获得 root 权限。不过这些安全漏洞只能在本地被利用,这意味着潜在的攻击者将不得不通过利用另一个漏洞或使用其他攻击载体来访问受影响的设备。这些漏洞在 2006年 iSCSI 内核子系统的初始开发阶段就被引入,如今时隔 15 年,GRIMM 的研究人员终于发现了这些漏洞

根据 GRIMM 安全研究员 Adam Nichols 的说法,这些漏洞影响了所有的 Linux 发行版,但幸运的是,受影响的 scsi_transport_iscsi 内核模块在默认情况下是没有被加载的。然而,攻击者可能针对特定的 Linux 发行版的特性,即该模块可以在特殊情况下被加载的特性,被攻击者利用并进行攻击。


Nichols 补充道:"在 CentOS 8、RHEL 8 和 Fedora 系统上,如果安装了 rdma-core 包,非特权用户可以自动加载所需模块。而在 Debian 和 Ubuntu 系统上,只有在 RDMA 硬件可用的情况下,rdma-core 包才会自动加载所需的两个内核模块。因此,在后两个系统中该漏洞的影响范围更加有限"。

通过 KASLR 绕过获得 root 权限

攻击者可以滥用这些漏洞来绕过漏洞阻止安全功能,如 Kernel Address Space Layout Randomization(KASLR,内核地址空间布局随机化)、Supervisor Mode Execution Protection (SMEP,主管模式执行保护)、Supervisor Mode Access Prevention(SMAP,主管模式访问防止)和 Kernel Page-Table Isolation(KPTI,内核页表隔离)。这三个漏洞会导致本地权限提升、信息泄露和拒绝服务:
CVE-2021-27365:堆缓冲区溢出(本地权限提升、信息泄露、拒绝服务)
CVE-2021-27363:内核指针泄露(信息泄露)
CVE-2021-27364:越界读取(信息泄露,拒绝服务)

目前所有这三个漏洞都在 5.11.4、5.10.21、5.4.103、4.19.179、4.14.224、4.9.260 和 4.4.260 进行了修补,修补程序已于2021年3月7日开始在主线 Linux 内核中提供。对于 3.x 和 2.6.23 等不再受支持的 EOL 内核版本,将不会发布针对上述漏洞的补丁。因此建议所有 Linux 用户都尽快更新系统至上述经过漏洞修复后的版本,以免设备被利用这些漏洞进行攻击。

Linux曝出内核安全漏洞非特权用户可获得root权限

2021年7月消息,在Linux内核中发现了一个漏洞,使一些低权限账户有可能在一些流行的发行版上获得root权限,包括Ubuntu、Debian和Fedora都受到了影响。该漏洞被命名为Sequoia,它存在于文件系统层。这个安全问题被认为影响了自2014年以来发布的所有版本的Linux内核,这意味着大量的发行版都有漏洞。具体来说,该漏洞是一个size_t到int的类型转换漏洞,可以被利用来提升权限。

来自Qualys的安全研究人员写道:"我们在Linux内核的文件系统层发现了一个大小t-int转换的漏洞:通过创建、挂载和删除一个总路径长度超过1GB的深层目录结构,没有特权的本地攻击者可以将10字节的字符串"//deleted"写到一个正好在vmallocated内核缓冲区开始下面的偏移量-2GB-10B"。研究人员成功利用了这种不受控制的越界写入,实现了在Ubuntu 20.04、Ubuntu 20.10、Ubuntu 21.04、Debian 11和Fedora 34工作站的默认安装上获得了完全的root权限;其他Linux发行版当然也有漏洞,而且可能被利用。利用这一漏洞完成提权需要大约5GB的内存。Qualys已经发布了一个概念验证程序,可以在这里找到。

安全研究人员提供了一个解决方法的细节,但指出他们 "只阻止了我们的特定漏洞的利用方法(但可能存在其他的利用技术)"。将/proc/sys/kernel/unprivileged_userns_clone设置为0,以防止攻击者在用户名称空间挂载一个长目录。然而攻击者可能会通过FUSE挂载一个长目录;但这可能是徒劳的,因为systemd的CVE-2021-33910漏洞还没有修复:如果攻击者通过FUSE挂载一个长目录(超过8MB),那么systemd就会耗尽其堆栈,崩溃,从而使整个操作系统崩溃。

将 /proc/sys/kernel/unprivileged_bpf_disabled 设为 1,以防止攻击者将 eBPF 程序加载到内核。然而,攻击者可能会破坏其他vmallocated对象(例如,线程堆栈)。Qualys说,为了完全修复这个漏洞,内核必须打上补丁,这还需要内核团队确认、修复并公开新的版本。

Linux Netfilter 本地权限提升漏洞通告(CVE-2021-22555)

报告编号:B6-2021-071601
报告来源:360CERT
更新日期:2021-07-16

1. 漏洞简述
2021年07月16日,360CERT监测发现国外安全研究员@theflow公开了CVE-2021-22555 Linux Netfilter提权漏洞的分析报告,漏洞编号为CVE-2021-22555,漏洞等级:高危,漏洞评分:7.8。

Linux Netfilter 模块是内核中用于管理网络数据包的一个软件框架,被人熟知的 iptables,nftables等工具均是基于 Netfilter 开发的。该漏洞利用 Netfilter 中 memcopy,memset函数的使用过程中的逻辑不当实现权限提升。该漏洞在kCTF中被用于攻击kubernetes pod容器实现虚拟化逃逸。对此360CERT建议广大用户及时将Linux Kernel升级到最新版本。同时做好资产自查以及预防工作,以免遭受黑客攻击。

2. 风险等级
360CERT对该漏洞的评定结果如下
评定方式:等级
威胁等级:高危
影响面:广泛
攻击者价值:高
利用难度:高
360CERT评分:7.8

3. 漏洞详情
CVE-2021-22555: linux kernel-netfilter 特权提升漏洞
组件: kernel-netfilter
漏洞类型: 特权提升
影响: 权限提升;服务器接管

简述:Linux 内核模块Netfilter中存在一处权限提升漏洞,在在64 位系统上为 32 位进程处理 setsockopt IPT_SO_SET_REPLACE(或 IP6T_SO_SET_REPLACE)时,如果内核选项CONFIG_USER_NS 、CONFIG_NET_NS被开启,则攻击者可以通过该漏洞实现权限提升,以及从docker、k8s容器中实施容器逃逸。

4. 影响版本
以下版本为hash内容的是 Linux Kernel 完成修复的 git commit
组件     影响版本     安全版本
Linux:kernel-netfilter <b29c457a6511435960115c0f548c4360d5f4801d     b29c457a6511435960115c0f548c4360d5f4801d
debain:stretch 4.9.228-1     4.9.272-1
debain:buster 4.19.171-2     4.19.194-1
Linux:Kernel >=2.6.19     5.12,5.10.31, 5.4.113, 4.19.188, 4.14.231, 4.9.267, 4.4.267

5. 修复建议
通用修补建议:根据影响版本中的信息,排查并升级到安全版本
临时修补建议:根据 RedHat 的建议,用户可以实施以下操作通过禁用非特权用户执行CLONE_NEWUSER、CLONE_NEWNET,以缓解该漏洞带来的影响:
echo 0 > /proc/sys/user/max_user_namespaces

Linux 内核出现 TIPC 漏洞,具有远程代码执行风险

2021年11月上旬消息,透明进程间通信(TIPC、Transparent Inter Process Communication)是一种用于进程间通信的网络通信协议,原本是为集群间通信特别设计的。该协议在主要 Linux 发行版的内核模块包中实现。SentinelLabs 在使用 CodeQL 进行开源项目的 bug 搜索调查时发现 TIPC 模块中存在一个严重的漏洞。CodeQL 是一个语义代码分析引擎,允许开发者像查询数据一样查询代码。该漏洞表现为:Linux 内核的 TIPC 模块中存在一个关键的堆溢出安全漏洞,可以被黑客以本地或远程的方式利用,以获得内核级权限并执行任意代码,进而导致系统完全被破坏。

TIPC 是一个点对点协议,由 Linux 集群内的节点以一种优化的方式相互通信;它可以实现各种类型的消息,用于不同的目的。根据 SentinelLabs 的研究调查,有关的漏洞(CVE-2021-43267)存在于一种允许节点相互发送加密密钥的 MSG_CRYPTO 消息类型中。SentinelLabs 的研究员 Max Van Amerongen 表示,“当被用户加载时,TIPC 可以作为一个套接字使用,并可以在接口上配置。所有的消息构建和解析都是在内核中进行的,这使得它成为了攻击者的理想目标。”

当涉及到该消息构建时,每个 TIPC 消息都有一个共同的 header 格式。根据该研究员的说法,该 header 包含一个 "header 大小" 分配,还有一个 "消息大小" 分配,这两个大小是由 tipc_msg_validate 函数所验证的。如前文所述,这个额外的消息类型 "MSG_CRYPTO" 允许节点相互发送加密密钥。根据分析,这些消息包含密钥算法的名称和密钥本身。对密钥长度或密钥算法名称本身大小(TIPC_AEAD_ALG_NAME),目前都没有针对这些内容进行大小验证的检查。对 MSG_CRYPTO 消息类型缺乏这种大小验证,为堆溢出漏洞打开了大门。

该漏洞影响到 5.10 至 5.15 之间的 Linux 内核版本。但需要注意的是,虽然目前所有主流的 Linux 发行版都有 TIPC 模块,但在默认情况下并没有开启的,并且只有在开启 TIPC 后才会使你的 Linux 系统受到该漏洞的影响。SentinelLabs 在 10 月 19 日已向 Kernel.org 团队报告了这个漏洞。该模块的维护者在 10 月 21 日已完成了补丁。该补丁已经同 Linux 5.15 版本一同发布。为了确保万无一失,建议 Linux 用户应该更新近期发布的补丁。

Linux 在修补漏洞方面比苹果、谷歌和微软做得更好

2022年2月下旬消息,来自谷歌安全研究团队 Project Zero 的研究表明,Linux 开发者在修复安全漏洞方面比其他任何人(包括谷歌)都要更加迅速。从 2019 年到 2021 年,Project Zero 在标准的 90 天期限内共向供应商报告了 376 个问题。这些  bug 中的 351 个 (93.4%) 已被修复、14 个 (3.7%) 被供应商标记为 WontFix 、11 个 (2.9%) 仍未修复。在公告发布时,已有时 8 个超过了修复期限;其余 3 个仍处于修复期限内。大多数漏洞集中在少数供应商那里,有 96 个漏洞 (26%) 被报告给微软,85 个 (23%) 报告给苹果,60 个 (16%) 报告给了谷歌。

Project Zero 为供应商提供了 90 天的标准期限以及 14 天的宽限时间来解决安全问题。研究发现,开源程序员平均只用 25 天就修复了 Linux 问题。与此同时,苹果则花了 69 天、谷歌花了 44 天、Mozilla 花了 46 天来修复了漏洞。排在最后的是微软 83 天,和甲骨文 109 天(尽管只有少数几个安全问题)。其他主要包括 Apache、Canonical、Github 和 Kubernetes 等开源组织和公司,以 44 天的时间排在前列。

总的来说,整体修复时间一直在减少,但在 2019 年和 2020 年之间最为明显。在此期间,微软、苹果和 Linux 整体上减少了他们的修复时间,Linux 从 2019 年的 32 天发展到了 2021 年的仅 15 天。而谷歌在 2020 年加快了速度,然后在 2021 年再次放缓。2021 年,供应商平均需要 52 天来修复报告的安全漏洞。

除了发现 2021 年的平均值远低于 90 天的最后期限外,该团队还发现错过最后期限或额外的 14 天宽限期的供应商数量也有所下降。 去年只有一个 Google Android 安全问题超过了修复期限,其他两年平均每年 9 个;宽限期共使用了 9 次(尤其是微软使用了一半),略低于其他年份的 12.5 次平均值。移动操作系统方面,苹果 iOS(平均 70 天)比谷歌 Android 系统(平均 72 天)发布补丁的速度要更快。但另一方面,iOS 包含有 72 个 bug,远多于 Android 的 10 个问题。

浏览器问题也正在以更快的速度得到解决。Chrome 平均不到 30 天就解决了 40 个问题,Mozilla Firefox 仅有 8 个安全漏洞,平均 37.8 天就能修复。Webkit 是 Apple 的 Web 浏览器引擎,主要由 Safari 使用;Webkit 的程序员平均需要超过 72 天的时间来修复 bug。

研究指出,与过去几年相比,所有人在修复漏洞方面都做得更好了。这或许是因为负责任的披露政策已成为行业事实上的标准,供应商更有能力对不同期限的报告做出快速反应。且随着透明度的提高,公司也一直在相互学习最佳实践。ZDNet 认为,这在很大程度上归功于开源开发方法的发展,人们意识到一起修复 bug 对每个人都有好处。

全新Nimbuspwn漏洞让黑客成功获取系统最高权限

微软365 Defender研究团队在2022年5月上旬发出安全报告指出,发现可让本地端黑客提升Linux系统权限的“Nimbuspwn”漏洞(漏洞编号为CVE-2022-29799CVE-2022-29800),该漏洞是集结许多常见安全漏洞的统称,包括目录游走(Directory Traversal,又称目录遍历弱点)、符号连接竞争(Symlink Race)以及检查时间/使用时间竞争条件(Time-of-Check-Time-of-Use Race Condition)等漏洞。一旦黑客取得更高系统权限,便能将后门程序或勒索软件等恶意软件植入受害系统之中。Nimbuspwn安全漏洞是在专门负责Linux机器上发送连接状态变更消息的networkd-dispatcher守护程序中发现的。整个过程是研究人员在“监听系统总线消息”之后,决定重新查看networkd-dispatcher程序的程序代码流,最后发现了该漏洞。

研究人员观察到一个值得注意的攻击行为,也即networkd-dispatcher守护程序会在启动时以系统根权限运行,并且根据所侦测到的网络状态,使用“_run_hooks_for_state”方法来发现并运行脚本档。该脚本执行的逻辑包括返回“/etc/networkd-dispatcher/.d”目录中由根用户及根群组所拥有的可执行脚本档。总之,该守护程序会通过所谓“subprocess.Popen”程序运行在上述目录位置中的每个脚本档,同时提供定制化环境变量。

最可怕的是,即使只拥有低系统权限的攻击者,也可通过上述漏洞的串联并发送任意消息来将权限提升到最高等级。原则上,一旦攻击码拥有特权服务或程序下的总线名称,那么就可能成功发动Nimbuspwn漏洞攻击。据了解,目前networkd-dispatcher守护程序维护人员已经展开能解决Nimbuspwn漏洞的必要更新部署作业。所以Linux用户最好在一拿到系统修补程序后,就立即展开系统更新修补作业。

DirtyCred:存在8年的Linux kernel漏洞

研究人员于2022年8月下旬发现存在8年的Linux kernel漏洞——DirtyCred。美国西北大学研究人员在Linux kernel中发现了一个存在长达8年之久的安全漏洞——DirtyCred,CVE编号为CVE-2022-2588,攻击者利用该漏洞可以将权限提升到最高级别。

Dirty pipe 是Linux kernel pipe子系统中一个非常严重的安全漏洞,CVE编号为CVE-2022-0847,CVSS评分7.8分。攻击者利用该漏洞可以实现任意可读文件的写入,从而实现权限提升,而且无需处理kernel地址随机化和指针完整性检查的问题。目前,还没有针对该漏洞的利用应对方案。Dirty pipe可以绕过所有的kernel保护措施,但漏洞利用无法实现容器逃逸。

Kernel凭证是kernel文档中定义的kernel中携带特权信息的特征,表示权限和对应的能力。主要分为task凭证(struct cred)和open file凭证(struct file)。


task凭证


open file凭证

在现实中会对凭证对象进行安全检查。DirtyCred是一个kernel利用概念,可以将非特权的Linux kernel凭证与特权kernel凭证进行交换以实现权限提升。CVE编号CVE-2022-2588,DirtyCred的利用攻击也分为task凭证攻击和open file凭证攻击。

task凭证攻击步骤:
·释放非特权的凭证;
·在释放的内存slot中分配特权凭证;
·以特权用户运行;
open file凭证攻击步骤:
·在检查后、写入硬盘前释放文件obj,
·在释放的内存slot中分配制度的文件obj;
·以特权用户运行,写入内容到文件;


DirtyCred 是一个通用的漏洞利用方法,非常简单和高效。研究人员证明了漏洞利用方法可以实现类似dirty-pipe的能力,可以覆写任意文件来实现权限提升除了覆写kernel堆中的数据域,它可以滥用堆内存重用机制来实现权限提升,并实现容器逃逸。此外,漏洞利用继承了dirty pipe的优势,可以无需修改就攻击各种kernel版本。

PoC参见GitHub
完整演讲报告
参考及来源

NFSD 存在缓冲区溢出漏洞

Linux kernel 的受影响版本中的 NFSD implementation 模块存在缓冲区溢出漏洞,攻击者可利用此漏洞通过 TCP 发送 RPC 消息并在消息末尾添加垃圾数据进行攻击,带有垃圾数据的 RPC 消息转发给处理程序从而造成缓冲区溢出,攻击者可利用此漏洞造成拒绝服务或恶意代码执行。

漏洞名称:Linux kernel NFSD 存在缓冲区溢出漏洞
漏洞类型:缓冲区大小计算不正确
发现时间:2022-11-05
漏洞影响广度:一般
CVE 编号:CVE-2022-43945

影响范围
Linux kernel@(-∞, 5.19.17)
Linux kernel@[6.0, 6.0.2)

修复方案
将组件 Linux kernel 升级至 5.19.17 及以上版本
将组件 Linux kernel 升级至 6.0.2 及以上版本

Linux Kernel ksmbd 模块存在任意代码执行漏洞

KSMBD 是一个 linux Kernel 服务器,它在内核空间中实现 SMB3 协议,用于通过网络共享文件。由于在对对象执行操作之前没有验证对象是否存存在,导致处理 SMB2_TREE_DISCONNECT 命令时存在缺陷,未经身份验证的攻击者可以利用此缺陷远程执行任意代码(只有启用了 ksmbd 模块的系统容易受到攻击)。
漏洞类型:代码注入
发现时间:2022-12-24
漏洞影响广度:极小
CVE 编号:CVE-2022-47939
影响范围:Linux Kernel@[5.15, 5.19.2)
修复方案:升级 Linux Kernel 到 5.19.2 或更高版本,如果存在且启用了 ksbm 模块,缓解措施为禁用 ksbm 模块。