RHSB-2022-002 脏管道 - 内核任意文件操作 -(CVE-2022-0847)
此信息是否有帮助?
执行摘要
红帽已了解到一个影响 Linux 内核的漏洞,即使文件是只读访问模式,攻击者也可以修改文件内容(在内存或磁盘中)。
此漏洞已被记录为 CVE-2022-0847,它也被称为 Dirty Pipe 漏洞。此问题在 2022 年 3 月 7 日公布,其严重性级别被定为 Important (重要)。
请注意,对于 Red Hat Enterprise Linux 8(RHEL),当前已知的利用漏洞进行安全攻击的方法无效。但是,底层的安全漏洞仍存在。因此,不能完全排除存在其他利用这个安全漏洞成功进行安全攻击的方法。
受影响的红帽产品:
Red Hat Enterprise Linux 8
Red Hat Openshift Container Platform 4
Red Hat Enterprise Virtualization 4
另外,任何基于 Red Hat Enterprise Linux 8(包括 RHEL CoreOS)的产品都受这个安全漏洞的影响,但并没有实际的安全弱点。这包括从 RHEL 频道获取软件包的产品,如 Red Hat OpenShift Container Platform 3、Red Hat OpenStack Platform 及其他软件包。请确保这些产品环境中底层的 RHEL kernel 软件包是最新的。
请参照下面的诊断部分的内容,检查您的系统是否存在这些安全漏洞。
技术概述
在新的管道缓冲区结构的"flags"成员中发现了一个安全漏洞,它在 Linux 内核中的 copy_page_to_iter_pipe 和 push_pipe 中缺少正确的初始化过程。一个没有特权的本地用户,可能会使用这个缺陷,写入只读文件在页面缓存中的页面,实现在系统上升级其权限。
例如,因为缺少正确的初始化过程,在创建新的管道缓冲时,PIPE_BUF_FLAG_CAN_MERGE 标志会被不正确地设置。此标志用于控制写入管道缓冲区的并发性,因此可允许写入管道中的现有页片段。如果这个页片段的后端为一个文件,则更改将反映到内存中对该文件的共享系统范围的查看,且任何后续的缓存清除都会将修改的数据写入到磁盘(忽略现有 Linux 权限设置)。
即使现有的访问控制(如 SELinux、标准 Linux 权限设置、高级访问控制、不可变文件和设备被挂载为"只读")把一个文件限制为“只读”,一个没有相应权限的用户也可以通过这个漏洞对文件的特定内容进行覆盖。
请注意,Red Hat Enterprise Linux 8 中不存在 PIPE_BUF_FLAG_CAN_MERGE 标记攻击向量,因此目前已知的利用这个漏洞进行攻击的方法无效。
如需更多详细信息,请参阅 CVE-2022-0847。
缓解方案
目前,还没有对这个安全漏洞的缓解方案。SELinux 不能缓解这个安全漏洞。kpatch 不能缓解这个安全漏洞。一旦相应的修复软件包可用,客户应立即进行更新。
对受影响产品的更新
强烈建议运行这些受影响的红帽产品的客户在有勘误表时立即进行更新。并建议您在没有更新可用的情况下,通过使用缓解方案避免系统受到影响。
产品 | 组件 | 公告/更新 [1] |
Red Hat Enterprise Linux 8 | kernel | |
Red Hat Enterprise Linux 8 | kernel-rt | |
Red Hat Enterprise Linux 8.4 延长更新支持(EUS)[2] | kernel | RHSA-2022:0831 |
Red Hat Enterprise Linux 8.4 延长更新支持(EUS)[2] | kernel-rt | RHSA-2022:0822 |
Red Hat Enterprise Linux 8.2 延长更新支持(EUS)[2] | kernel | RHSA-2022:0820 |
Red Hat Enterprise Linux 8.2 延长更新支持(EUS)[2] | kernel-rt | RHSA-2022:0821 |
Red Hat Enterprise Linux 8.1 Update Services for SAP Solutions [3] | kernel | RHSA-2022:0823 |
Red Hat Virtualization 4 | redhat-virtualization-host | |
Red Hat OpenShift Container Platform 4 | 待处理的版本 |
[1] 公告/更新链接将在更新发布后添加。
[2] 什么是 Red Hat Enterprise Linux 延长更新支持(EUS)订阅?
[3] 什么是 Red Hat Enterprise Linux SAP Solutions 订阅?
诊断
已开发了一个安全漏洞检测脚本,来确定您的系统当前是否受此漏洞的影响。要验证脚本的真实性,您还可以下载 分离的 OpenPGP 签名。红帽客户门户网站上提供了有关如何使用GPG签名进行验证说明。
常问问题解答
问:此安全漏洞如何修改只读内容?
答:在访问一个文件时,该文件会被加载到内存的“缓存”区中(页面缓存),攻击者可以更改缓存内存中的文件内容。后续的对该文件的读取操作会返回已被损坏的内容。
问:此缺陷是否会破坏磁盘上的实际文件的内容?
答:会破坏。如果一个特定的内容位于内存区中的"脏页(Dirty Page)"中,且等待被写回到磁盘,则这个内容就可能被截获和修改。向磁盘提交的数据就有可能是被修改的数据。
问:SELinux 是否可以缓解这个问题?
答:不能。SELinux 不会缓解此漏洞。
问:Openstack、Ceph 和 Satellite 等产品是否受影响?
答:这些产品不会直接受到影响 - 内核是受影响的组件,系统是否受影响由在其上安装的产品所使用的 RHEL 版本决定。
问:红帽是否会发布 kpatch?
答:kpatch 技术无法缓解此漏洞,因此不会发布 kpatch。
问:为什么 RHEL 8 被认为是受影响,但没有安全弱点(不容易受到攻击)?
答:当前已知的安全攻击方法需要依赖上游内核提交 f6dd97558 中包括的功能,它并没有存在于 RHEL8 内核中,因此不会受到安全攻击。
问:当前是否可以通过修改配置来改变系统是否受这个安全漏洞影响/是否存在安全弱点的状态?
答:不可以。不能通过修改配置来改变相关的状态。
问:通过利用这个漏洞进行攻击是否需要特殊要求?
答:攻击者必须是在系统中具有执行权限的本地用户。
致谢
红帽感谢 Max Kellermann(CM4all)报告此漏洞
Comments