概要
SiYuan は 個人 向け の ナレッジ マネジメント システム で あり、マークダウン や リッチテキスト を 使った メモ 管理 を 提供 して います。バージョン 3.6.0 以前 の SiYuan に おいて、SVG(Scalable Vector Graphics)の サニタイズ 処理 に 重大 な 不備 が 発見 されました。この 脆弱性 は CWE-79(クロスサイト スクリプティング)および CWE-184(不完全 な ブロックリスト)に 分類 されます。
具体的 に は、SanitizeSVG 関数 は data:text/html および data:image/svg+xml を href 属性 から ブロック して いますが、data:text/xml および data:application/xml という データ URI スキーム が ブロックリスト に 含まれて いません。これら の データ URI スキーム は SVG コンテンツ を レンダリング する 能力 が あり、その 中 に JavaScript コード を 埋め込む こと が できます。さらに、未認証 で アクセス 可能 な /api/icon/getDynamicIcon エンドポイント が、ユーザー が 制御 可能 な 入力 を 直接 SVG マークアップ に 挿入 して レスポンス として 返却 して いる ため、攻撃者 は 認証 なし で 悪意 の ある SVG を 生成 させる こと が 可能 です。
この 脆弱性 の CVSS スコア は 9.3 で あり、Critical と 評価 されて います。SiYuan は Electron ベース の アプリケーション で ある ため、XSS が 成功 する と ノード 統合(nodeIntegration)の 設定 次第 で リモートコード 実行(RCE)に エスカレート する 可能性 が あります。認証 が 不要 で ある 点 も 深刻度 を 高めて おり、ネットワーク 上 の 任意 の 攻撃者 が 悪用 できる リスク が あります。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| CVSS スコア | 9.3 |
| 深刻度 | Critical |
| CWE | CWE-79(クロスサイト スクリプティング)、CWE-184(不完全 な ブロックリスト) |
| 攻撃元 | ネットワーク |
| 認証 | 不要 |
影響 を 受ける ソフトウェア
| 製品 | 影響 バージョン | 修正 バージョン |
|---|---|---|
| SiYuan | 3.6.0 以前 | 3.6.1 |
修正 バージョン と 回避策
SiYuan バージョン 3.6.1 に アップデート する こと で、この 脆弱性 は 修正 されます。修正 バージョン で は、SVG サニタイズ の ブロックリスト が 拡充 され、data:text/xml や data:application/xml を 含む 追加 の データ URI スキーム も ブロック 対象 と なって います。すぐ に アップデート できない 環境 で は、SiYuan の API エンドポイント へ の ネットワーク アクセス を 信頼 できる クライアント のみ に 制限 する こと が 暫定的 な 回避策 と して 推奨 されます。また、リバース プロキシ 等 で /api/icon/getDynamicIcon エンドポイント へ の 外部 から の アクセス を 遮断 する こと も 有効 です。
関連 リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説 は Claude API に より 自動生成 されています。正確性 に ついては 原文 を ご確認 ください。
