
NVIDIA Linux GPU 드라이버에서 공급업체가 예상/의도된 동작으로 종결한 두 가지 발견 사항에 대한 PoC 및 증거: NVML을 통한 교차 UID GPU 프로세스 원격 측정, 그리고 피어 액세스 해제 경쟁 조건을 통한 권한 없는 Xid 31 복사 엔진 MMU 오류.
| # | 발견 사항 | 분류 | 공급업체 결과 | 디렉터리 |
|---|
| 1 | NVML을 통한 교차 UID GPU 프로세스 원격 측정 | 정보 공개 (CWE-200 / CWE-862) | "예상된 동작"; 2026-08-20 서면으로 공개 승인 | 01-nvml-cross-uid-telemetry/ |
| 2 | P2P 해제 경쟁 조건을 통한 비권한 Xid 31 복사 엔진 MMU 오류 | GPU 오류, 비권한 및 결정적 | "의도된 동작이므로 버그가 아님", 2026-08-04 종결 | 02-xid31-p2p-teardown-race/ |
드라이버 595.71.05-open, A100-SXM4-80GB x4 (NV4 풀 메시, NVSwitch 없음, MIG 꺼짐), Ubuntu 24.04 / 커널 6.8.0, CUDA 툴킷 12.9에서 테스트했습니다. 발견 사항 1은 565.57.01-open에서도 재현되었습니다.
발견 사항 1은 실제 교차 UID 노출입니다. 발견 사항 2는 영향이 입증되지 않은 오류입니다. 두 건은 동등한 강도가 아니며 그렇게 제시되지도 않습니다.
발견 사항 2는 비권한 사용자가 NVLink GPU 쌍을 결정적으로 오류 상태로 만들 수 있음을 보여줍니다
(5/5, PID 귀속, 4/4 깨끗한 음성 대조군 대비). 그러나 오류가 트리거 프로세스보다 오래 지속된다는 것을
입증하지는 않습니다. 해당 측정은 수행된 적이 없습니다 — 하네스가 프로빙 전에 반사적으로 GPU를
리셋했고, 노드는 반복 측정 전에 프로비저닝이 해제되었습니다. 오류가 자체적으로 해소된다는 두 가지
독립적인 증거가 있습니다: NVIDIA의 Xid 카탈로그는 Xid 31을 즉시 조치 RESTART_APP으로 분류하며,
GPU 자체의 복구 동작 필드가 리셋 전에 None으로 읽혔습니다. 누군가
02-xid31-p2p-teardown-race/에서 프로세스 종료 후 카나리 테스트를
실행할 때까지, 이를 서비스 거부가 아닌 폭발 반경이 입증되지 않은 오류로 취급하십시오.
사용 가능한 NVLink 쌍이 있다면, 그 한 가지 실험이 여기에서 누구나 기여할 수 있는 가장 가치 있는 작업입니다. 몇 분이면 됩니다.
git clone https://github.com/abhinavagarwal07/nvidia-gpu-security-poc
cd nvidia-gpu-security-poc
./capture_env.sh # 호스트의 장치 권한, 드라이버, 토폴로지, /proc 옵션 기록
# 발견 사항 1 — 두 번째 사용자가 CUDA 워크로드를 실행 중이어야 함
(cd 01-nvml-cross-uid-telemetry/poc && make && ./nvml_harvest)
# 발견 사항 2 — NVLink로 연결된 GPU 2개 필요. GPU 쌍을 오류 상태로 만듦. 공유 하드웨어에서 실행하지 마십시오.
(cd 02-xid31-p2p-teardown-race/poc && ./build.sh && \
CUDA_VISIBLE_DEVICES=0,1 ./p2p_teardown_race_verbose --a 0 --p 1)
capture_env.sh 출력은 우리 결과와 차이가 있을 때 보고할 때 첨부할 내용입니다 — ls -l /dev/nvidia*,
/proc/driver/nvidia/params 장치 모드 항목, /proc 마운트 옵션(hidepid= 마운트는 발견 사항 1의
결과를 변경함), 토폴로지, 드라이버 및 pynvml 버전을 기록합니다.
발견 사항 2는 의도적으로 GPU 쌍을 오류 상태로 만듭니다. 커널 로그에 Xid 31 항목이 생성되며
nvidia-smi --gpu-reset으로 해제해야 할 수 있습니다 — 그리고 Ampere 세대 NVLink/NVSwitch 시스템에서
NVIDIA는 치명적 트렁크 링크 사례의 복구가 단일 GPU가 아닌 패브릭 전체 작업이라고 문서화합니다.
소유하거나 중단에 대한 서면 승인을 받은 하드웨어에서만, 공동 테넌트 없이 실행하십시오.
모든 원래 테스트는 승인된 클러스터 임대 하에 단일 테넌트, 연구자 통제 노드에서 수행되었습니다.
발견 사항 1은 읽기 전용이며 수동적입니다. 드라이버가 이미 모든 로컬 사용자에게 노출하는 원격 측정을 읽을 뿐이며, 아무것도 쓰거나 주입하지 않습니다.
각 디렉터리의 results/에는 원본 머신 채점 실행별 평결 JSON, 캡처된 dmesg Xid 라인, 양성 및 음성
대조군, 관찰자 권한 감사, 테스트 노드의 환경 캡처가 포함되어 있습니다. GPU UUID, 하드웨어 일련번호 및
노드 IP는 삭제되었으며, 다른 것은 변경되지 않았습니다.
두 발견 사항 모두에 대한 전체 공개 게시물(공급업체 서신 및 공개 타임라인 포함): https://abhinavagarwal07.github.io
PoC 코드 및 문서: LICENSE 참조.