作为 Nimbuspwn 的一组新漏洞可以让本地攻击者提升 Linux 系统的权限,以部署从后门到勒索软件的恶意软件。
微软的安全研究人员在今天的一份报告中披露了这些问题,指出它们可以链接在一起以在易受攻击的系统上获得 root 权限。
发现漏洞始于“监听系统总线上的消息”,这促使研究人员审查了 networkd-dispatcher 的代码流。
微软研究员 Jonathan Bar Or 在报告中解释说,Nimbuspwn 安全漏洞涉及目录遍历、符号链接竞争和使用时间检查 (TOCTOU) 竞争条件问题 。
引起兴趣的一项观察是 networkd-dispatcher 守护程序 在系统启动时以 root 权限运行。
研究人员注意到,守护进程使用一种名为“ _run_hooks_for_state” 的方法来根据检测到的网络状态来发现和运行脚本。
“_run_hooks_for_state”实现的逻辑 包括返回“/etc/networkd-dispatcher/.d”目录下root用户和root组拥有的可执行脚本文件。
它使用名为subprocess.Popen的进程在上述位置运行每个脚本, 同时提供自定义环境变量。
微软的报告解释说“ _run_hooks_for_state” 存在多个安全问题:
目录遍历 ( CVE-2022-29799 ):流程中的任何功能都不会清理 OperationalState 或 AdministrativeState。状态用于构建脚本路径,因此状态可以包含目录遍历模式(例如“../../”)以从“/etc/networkd-dispatcher”基本目录中逃脱。
符号链接竞赛:脚本发现和 subprocess.Popen 都遵循符号链接。
Time-of-check-time-of-use ( TOCTOU ) 竞争条件 ( CVE-2022-29800 ):在发现脚本和运行脚本之间有一定的时间。攻击者可以利用此漏洞将networkd-dispatcher 认为属于root 的脚本替换为不属于root 的脚本。
对系统具有低权限的攻击者可以将上述漏洞链接在一起,通过发送任意信号升级到根级权限。
下图概述了成功利用的步骤,其中涵盖了攻击的三个阶段:
Bar Or 指出,赢得 TOCTOU 比赛条件需要种植多个文件。在他实施自定义漏洞利用的实验中,经过 3 次尝试后记录成功。
当漏洞利用代码可以拥有特权服务或进程下的总线名称时,可以成功利用 Nimbuspwn。
研究人员说,有许多环境可以做到这一点,包括 Linux Mint,其中“通常拥有“org.freedesktop.Network1”[用于研究]总线名称的服务 systemd-networkd 默认情况下不会在启动时启动。 ”
此外,Bar Or 还发现了额外的“以 systemd-network 用户身份运行的进程”,它们从全球可写位置执行任意代码:例如,几个 gpgv 插件(在 apt-get 安装或升级时启动)、Erlang Port Mapper Daemon ( epmd )允许在某些情况下运行任意代码。
N etworkd -dispatcher的维护者 Clayton Craft 已经部署了必要的更新来解决 Nimbuspwn 漏洞。
建议 Linux 用户在修补程序适用于他们的操作系统后立即修补他们的系统。
发表评论