概要
Web ページ 変更 検知 ツール changedetection.io に 認証 バイパス の 脆弱性 が 報告 されています。Flask アプリケーション の デコレータ 記述 順序 の 誤り が 原因 で、認証 チェック が 完全 に バイパス されます。
@login_optionally_required デコレータ が @blueprint.route() の 外側(先)に 配置 されている ため、Flask の @route() は 認証 ラッパー が 適用 される 前 の 元 の 関数 を そのまま ルーティング テーブル に 登録 します。この 結果、認証 チェック の ラッパー 関数 が 呼び出し チェーン に 含まれず、設定 した パスワード 認証 が 完全 に 無効化 されます。
changedetection.io は Web ページ の 変更 を 監視 する セルフホスト 型 の ツール で、Docker で 手軽 に デプロイ できる ため 多く の ユーザー が 利用 しています。インターネット に 公開 している 場合、認証 なし で 全 機能 に アクセス される 可能性 が あります。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSS v3 スコア | 9.8 (Critical) |
| 攻撃元区分 (AV) | ネットワーク |
| 攻撃条件の複雑さ (AC) | 低 |
| 必要な特権 (PR) | なし |
| ユーザー関与 (UI) | なし |
| 影響範囲 (S) | 変更なし |
| 機密性への影響 (C) | 高 |
| 完全性への影響 (I) | 高 |
| 可用性への影響 (A) | 高 |
影響を受けるソフトウェア
- 製品名: changedetection.io
- ベンダー: dgtlmoon
- 影響バージョン: 0.54.8 未満
- デプロイ: Docker / Python pip
技術的背景
Flask で は @route() が 最も 外側 の デコレータ で ある 必要 が あります。@route() は 受け取った 関数 を そのまま ルーティング テーブル に 登録 する ため、順序 が 逆転 すると 認証 ラッパー は 登録 されず、無装飾 の 関数 が 直接 呼び出さ れます。
修正バージョンと回避策
- 修正版: changedetection.io 0.54.8
- セルフホスト 環境 では 速やか に アップデート してください
- アップデート が 困難 な 場合、リバースプロキシ(nginx / Caddy 等)での Basic 認証 追加 を 検討 してください
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
