GitHubの脆弱性情報データベースに、Django REST frameworkの欠陥3件が掲載されています。認証トークンを削除したつもりでも使える状態が残る問題と、認証なしでサービスの応答を妨げられる問題があり、利用企業は版だけでなく処理の実装も確認する必要があります。各情報の掲載日は、今回の資料には記載されていません。
トークン削除が成功したように見えても残る
CVE-2026-114137は、認証に使うトークンの失効処理に関する欠陥です。TokenProxy.delete()で削除してもトークンが残り、例外も出ないため、運用者が失効済みと誤認する恐れがあります。ユーザーIDをトークンのキーと照合する実装が原因とされています。
このトークンは自然には失効しません。削除に失敗すると、その後も利用可能な状態が続きます。削除処理がエラーなく終わったという記録だけでは、失効の確認にならない点が重要です。
TokenProxyは3.12.0で導入されました。資料は、3.12.0以降で標準の管理処理以外からトークンを失効させている場合、結果を監査するよう促しています。一方、標準のTokenAdminの削除処理には回避策があり、この欠陥については安全とされています。
ヘッダーとJSONの解析でサービス妨害の恐れ
CVE-2026-114138は、受け取りたい応答形式を示すAcceptヘッダーの解析に関する欠陥です。要素数と合計サイズに上限がなく、同じ要素を繰り返し解析するため、細工した要求で認証なしにCPUを長時間占有できます。
資料の検証では、780KBのAcceptヘッダーでワーカーが18.87秒占有されました。要求を処理する同期ワーカーが2個の構成では、同時要求2件で応答がほぼ停止しています。これは検証環境での結果であり、すべての環境で同じ時間や件数になることを示すものではありません。再現が確認された版は3.18.0です。影響は可用性、つまりサービスを使える状態の維持に限られ、機密性や完全性への影響はないとされています。
CVE-2026-114136は、JSON解析時にメモリー使用量が大きく膨らむ欠陥です。Content-Typeのcharsetで圧縮コーデックを指定でき、受信サイズの検査後に展開されるため、Djangoのサイズ制限を回避できます。標準パーサーでJSON本文を受け付けるエンドポイントが、認証なしで狙われます。
影響対象は3.6.4以降です。検証では108バイトの本文から50,331,648文字の値が生成され、プロセスのピークメモリー使用量を示すRSSが96.8MiB増えました。
日本での提供は発表には書かれていません。また、3件の修正版や修正の提供時期は、今回の資料には記載がありません。
影響する会社・しない会社
- 影響する: 3.12.0以降で、標準の管理処理以外からTokenProxyを使ってトークンを失効させる会社は、削除結果の監査対象です。
- 影響する: 3.18.0を利用する会社はAcceptヘッダー解析の問題を確認する必要があります。それ以外の影響版の範囲は、資料には書かれていません。
- 影響する: 3.6.4以降で標準パーサーによるJSON本文の受け付けを行う会社は、JSON解析の欠陥の確認対象です。
- 影響しない: 標準のTokenAdminの削除処理は、トークン失効の欠陥について安全とされています。ただし、残る2件の影響がないことを意味しません。