概要
Notesnook は エンド ツー エンド 暗号化 を 特徴 と する オープン ソース の ノート アプリ です。この 脆弱性 は、Web Clipper 機能 が Web ページ から コンテンツ を 取り込む 際 に、攻撃者 が 制御 可能 な HTML 属性 を そのまま 保持 して しまう 問題 です。
Web Clipper は ユーザー が ブラウザ から ノート に コンテンツ を クリッピング する 便利 な 機能 ですが、クリッピング 時 に 不十分 な サニタイズ に より、悪意 ある 属性(例: イベント ハンドラ)が そのまま 保存 されます。保存 された コンテンツ は アプリ内 で サンドボックス 化 されて いない iframe に レンダリング されます。
Electron デスクトップ アプリ で は nodeIntegration が true に 設定 されて いる ため、XSS が 発生 する と Node.js の API に 直接 アクセス 可能 に なり、リモート コード 実行(RCE)に 昇格 します。これ により 攻撃者 は ユーザー の PC 上 で 任意 の コード を 実行 でき、ファイル の 読み書き、プロセス の 起動、ネットワーク 通信 など が 可能 に なります。
この 脆弱性 は CWE-79(クロス サイト スクリプティング)と CWE-94(コード インジェクション)の 複合 です。CVSS スコア は 9.6 で Critical と 評価 されて います。Web 版 および デスクトップ 版 は バージョン 3.3.11 で、モバイル 版 は バージョン 3.3.17 で 修正 されて います。
Electron アプリケーション に おいて nodeIntegration を 有効化 する こと は、XSS の 影響 を 大幅 に 拡大 させる 危険 な 設定 です。Electron の セキュリティ ベスト プラクティス で は、nodeIntegration は 無効化 し、contextIsolation を 有効化 する こと が 強く 推奨 されて います。本 脆弱性 は、Web クリッピング の ような 外部 コンテンツ を 取り込む 機能 に おいて、入力 サニタイズ が いかに 重要 で ある か を 示す 事例 です。暗号化 に よる データ 保護 と 入力 サニタイズ は 異なる セキュリティ 層 であり、両方 が 必要 です。Notesnook ユーザー は 速やかに アップデート を 適用 して ください。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| CVSS スコア | 9.6(Critical) |
| 攻撃 元 区分 | ネットワーク |
| 攻撃 条件 の 複雑 さ | 低 |
| 必要 な 特権 レベル | 不要 |
| ユーザー 関与 | 要 |
| 影響 の 範囲 | 変更 あり |
| CWE | CWE-79(Cross-site Scripting)/ CWE-94(Code Injection) |
影響 を 受ける ソフトウェア
| 製品 | ベンダー | 影響 バージョン |
|---|---|---|
| Notesnook Web | Streetwriters | 3.3.11 より 前 |
| Notesnook Desktop | Streetwriters | 3.3.11 より 前 |
| Notesnook Mobile | Streetwriters | 3.3.17 より 前 |
修正 バージョン と 回避策
- 修正 バージョン: Web / Desktop 3.3.11、Mobile 3.3.17
- 回避策: 修正 バージョン に アップデート する まで、Web Clipper 機能 の 使用 を 控える
- 回避策: 信頼 できない Web ページ から の コンテンツ クリッピング を 避ける
- 推奨: 速やかに 最新 バージョン に アップデート する
- 推奨: Electron アプリ の 開発者 は nodeIntegration を 無効化 し contextIsolation を 有効化 する こと を 検討 する
- 推奨: Web コンテンツ を 表示 する 際 は Content Security Policy(CSP)を 適用 し インライン スクリプト の 実行 を 制限 する
関連 リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
