概要
SiYuan は ローカル ファースト の 個人 ナレッジ マネジメント システム です。バージョン 3.6.0 以前 に おいて、インポート 機能 の API エンドポイント に パス トラバーサル(CWE-22)および 外部 制御 の ファイル 名 または パス に よる リソース アクセス(CWE-73)の 脆弱性 が 存在 します。この 脆弱性 の CVSS スコア は 7.6 で あり、High と 評価 されて います。
具体的 に は、POST /api/import/importSY および POST /api/import/importZipMd の 2 つ の エンドポイント が 影響 を 受けます。これら の API は アップロード された アーカイブ ファイル を 処理 する 際 に、マルチパート リクエスト の filename フィールド から 書き込み 先 の パス を 導出 して いますが、この ファイル名 に 対する サニタイズ 処理 が 行われて いません。
攻撃者(管理者 権限 が 必要)は、ファイル名 に ../ 等 の パス トラバーサル シーケンス を 含める こと で、一時 ディレクトリ の 外部 に ある 任意 の ファイル パス に ファイル を 書き込む こと が 可能 です。この 任意 ファイル 書き込み に より、設定 ファイル の 上書き、Cron ジョブ の 追加、Web シェル の 配置 など、リモートコード 実行(RCE)に 至る 攻撃 経路 が 開かれます。
管理者 権限 が 前提 と なる ため、一般 ユーザー から の 直接 的 な 攻撃 リスク は 限定的 ですが、管理者 アカウント の 侵害 や、他 の 脆弱性 と の 組み合わせ(チェーン 攻撃)に より、権限 昇格 から ファイル システム の 完全 な 制御 に 至る シナリオ が 考えられます。SiYuan を ネットワーク 共有 モード で 運用 して いる 場合 は、特に 注意 が 必要 です。
インポート 機能 は ユーザー が 日常的 に 使用 する 機能 で あり、管理者 が 悪意 の ない 意図 で アーカイブ を インポート する 際 に も、アーカイブ 内 の ファイル名 が 細工 されて いれば 脆弱性 が トリガー される 可能性 が あります。信頼 できない ソース から の アーカイブ インポート は 避ける べき です。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| CVSS スコア | 7.6 |
| 深刻度 | High |
| CWE | CWE-22(パス トラバーサル)、CWE-73(外部 制御 の ファイル 名 に よる リソース アクセス) |
| 攻撃元 | ネットワーク |
| 認証 | 管理者 権限 が 必要 |
影響 を 受ける ソフトウェア
| 製品 | 影響 バージョン | 修正 バージョン |
|---|---|---|
| SiYuan | 3.6.0 以前 | 3.6.1 |
修正 バージョン と 回避策
SiYuan バージョン 3.6.1 に アップデート する こと で、インポート API に おける ファイル名 の サニタイズ 処理 が 追加 され、パス トラバーサル シーケンス が 除去 されます。すぐ に アップデート できない 場合 は、信頼 できない ソース から の アーカイブ ファイル を インポート しない よう に 運用 ルール で 制限 して ください。また、SiYuan が 動作 する プロセス の ファイル システム 権限 を 最小限 に 設定 する こと で、任意 ファイル 書き込み の 影響 範囲 を 限定 する こと が できます。リバース プロキシ で インポート API へ の アクセス を 制限 する こと も 有効 な 暫定 対策 です。
関連 リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説 は Claude API に より 自動生成 されています。正確性 に ついては 原文 を ご確認 ください。
