注目★★★★★GitHub Advisory
SiYuan のデータベース表示に保存型 XSS、Electron で RCE に昇格
30秒で把握
- 1SiYuan v3.6.5 で属性ビューセル値が未エスケープ・保存型 XSS から RCE に昇格
- 2ワークスペース同期経由で全接続デバイスに自動伝播・共有ユーザーの書き込みが脅威源
- 3Electron nodeIntegration 環境で child_process require 可能・即アップデート推奨
要約
SiYuan の属性ビュー (database) セルレンダラー `genAVValueHTML()` は、text・url・phone・mAsset の 4 種類で生のセル内容を HTML に埋め込み、`</textarea><img src=x onerror="...">` のような入力を解釈してしまう。ユーザーが対象行を含むパネルを開くと任意 JavaScript が実行され、Electron の nodeIntegration:true 環境では `require('child_process')` 経由で RCE に昇格する。セル値は同期フォルダに保存され、書き込み権限を持つ攻撃者は一度ペイロードを仕込むと全デバイスで発火する。カーネルはエスケープを施さないため悪意あるセル値は byte-for-byte で永続化する。
あなたへの影響
SiYuan をワークスペース共有で運用する場合、共有ユーザーが悪意あるセル値を挿入すると全メンバーの PC で任意コード実行される危険があるため。
推奨:v3.6.5 以降へのアップデートを今日中に完了し、信頼できないユーザーの書き込み権限を即時見直すべき。