微软研究人员发现Linux系统多个安全漏洞——Nimbuspwn。
微软研究人员在Linux系统中发现多个安全漏洞——Nimbuspwn,攻击者利用这些漏洞可以在Linux系统上实现权限提升,获得root权限,并成功部署后门、勒索软件等恶意软件。
Nimbuspwn是networkd-dispatcher组件中的安全漏洞集,包括目录遍历、symlink 竞争、time-of-check-time-of-use (TOCTOU)竞争条件漏洞,CVE编号包括CVE-2022-29799和 CVE-2022-29800。networkd-dispatcher是负责在Linux机器上发送连接状态变化。
研究人员发现networkd-dispatcher daemon在启动时是以root权限运行的。并根据检测到的网络状态使用“_run_hooks_for_state”发现和运行脚本。
图 networkd-dispatcher以root权限运行
“_run_hooks_for_state”的实现逻辑包括返回“/etc/networkd-dispatcher/.d” 目录下root用户和root组所有的可执行脚本文件。在提供定制环境变量时调用subprocess.Popen 进程来在以上位置运行每个脚本。
图 _run_hooks_for_state源代码
微软分析发现“_run_hooks_for_state”存在以下安全问题:
目录遍历漏洞(CVE-2022-29799):以上函数中没有任意一个对OperationalState或AdministrativeState 进行处理。这些状态是用来构造脚本路径的,所以状态可以包含目录遍历模式(如“../../”)来实现从“/etc/networkd-dispatcher”目录逃逸。
Symlink竞争:脚本发现和subprocess.Popen都遵循符号链接。
Time-of-check-time-of-use (TOCTOU)竞争条件(CVE-2022-29800):脚本在被发现和执行中间会有一个时间间隔。攻击者可以滥用该漏洞来替换networkd-dispatcher认为属于root用户而事实上并不属于root用户的脚本。
系统中低权限的攻击者可以将以上漏洞串起来,通过发送任意信号来实现root级权限提升。漏洞成功利用包含以下3个步骤:
图 Nimbuspwn攻击的3个阶段
TOCTOU竞争条件需要注入多个文件。研究人员在测试时,只尝试了3次就成功了。
Nimbuspwn漏洞利用获得TOCTOU竞争条件
研究人员称,漏洞利用代码可以拥有一个特权服务或进程bus名时,就可以成功利用Nimbuspwn漏洞。有很多可能的场景,比如Linux Mint。
networkd-dispatcher维护人员已经部署了必要的更新来修复Nimbuspwn漏洞。研究人员建议Linux用户尽快安装补丁修复漏洞。
完整技术分析参见:https://www.microsoft.com/security/blog/2022/04/26/microsoft-finds-new-elevation-of-privilege-linux-vulnerability-nimbuspwn/
本文翻译自:https://www.bleepingcomputer.com/news/security/new-nimbuspwn-linux-vulnerability-gives-hackers-root-privileges/如若转载,请注明原文地址