概要
Django の ASGIRequest クラス に ヘッダー偽装 の 脆弱性 が 存在 します。ハイフン(-)と アンダースコア(_)を 含む 2つ の ヘッダー名 が 同一 の アンダースコア 版 に マッピング される ため、リモート の 攻撃者 が ヘッダー を 偽装 する こと が 可能 です。
この 問題 は ASGI 環境(Daphne / Uvicorn 等)でのみ 影響 します。WSGI 環境 では 影響 を 受けません。たとえば X-Forwarded-For と X_Forwarded_For の ような ヘッダー の 区別 が できなく なる ため、認証 や アクセス制御 に ヘッダー を 利用 している アプリケーション では セキュリティ上 の 影響 が 大きく なります。Django の 4.2 / 5.2 / 6.0 の 全 サポートシリーズ が 影響 を 受けます。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSS v3 スコア | 7.5 (High) |
| ベクトル | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| 攻撃元区分 (AV) | ネットワーク |
| 攻撃条件の複雑さ (AC) | 低 |
| 必要な特権 (PR) | なし |
| ユーザー関与 (UI) | なし |
| 機密性への影響 (C) | なし |
| 完全性への影響 (I) | 高 |
| 可用性への影響 (A) | なし |
影響を受けるソフトウェア
| シリーズ | 影響バージョン | 修正バージョン |
|---|---|---|
| Django 6.0 | 6.0 〜 6.0.3 | 6.0.4 |
| Django 5.2 | 5.2 〜 5.2.12 | 5.2.13 |
| Django 4.2 | 4.2 〜 4.2.29 | 4.2.30 |
5.0.x / 4.1.x / 3.2.x 等 の サポート終了 シリーズ は 評価 されていません が、影響 を 受ける 可能性 が あります。
修正バージョンと回避策
- Django 6.0.4 / 5.2.13 / 4.2.30 へ アップデート する
- ASGI 環境 を 使用 していない 場合(WSGI のみ)は 影響 なし
- アップデート まで の 緩和策 として、リバースプロキシ 側 で 不正 な ヘッダー を フィルタ する
- Nginx を 使用 している 場合、
proxy_set_headerで 信頼 する ヘッダー を 明示的 に 設定 する
報告者
Tarek Nakkouch 氏
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
