SiYuan은 오픈 소스 개인 지식 관리 시스템입니다. 3.7.0 이전에는 커널이 HTML 이스케이프 없이 속성 보기(AV/데이터베이스) 이름을 저장한 다음 렌더링 템플릿은 WebSocket을 통해 모든 클라이언트에 푸시하기 전에 원시 문자열.ReplaceAll(tpl, "${avName}", nodeAvName)을 사용하여 HTML에 이름을 포함했습니다. 3개의 독립적인 클라이언트 경로(render.ts:120 → externalHTML, Title.ts:401 → innerHTML, transaction.ts:559 → innerHTML)는 이스케이프 없이 값을 사용합니다. 기본 BrowserWindow가 실행되기 때문에
SiYuan은 오픈 소스 개인 지식 관리 시스템입니다. 3.7.0 이전에는 커널이 HTML 이스케이프 없이 속성 보기(AV/데이터베이스) 이름을 저장한 다음 렌더링 템플릿은 WebSocket을 통해 모든 클라이언트에 푸시하기 전에 원시 문자열.ReplaceAll(tpl, "${avName}", nodeAvName)을 사용하여 HTML에 이름을 포함했습니다. 3개의 독립적인 클라이언트 경로(render.ts:120 → externalHTML, Title.ts:401 → innerHTML, transaction.ts:559 → innerHTML)는 이스케이프 없이 값을 사용합니다. 기본 BrowserWindow는 nodeIntegration:true, contextIsolation:false, webSecurity:false(app/electron/main.js:407-411)를 실행하므로 렌더러의 HTML 삽입은 Node.js 코드 실행이 됩니다. 이 취약점은 3.7.0에서 수정되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 94.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 94.00 |
VPI 공식 vpi-v1 기준