注目★★★★★GitHub Advisory
python-multipart: セミコロン区切りパースのO(N²)脆弱性でCPU DoS (CVE-2026-53539)
30秒で把握
- 1CVE-2026-53539: セミコロン区切りパースがO(B²)となりCPU DoSを誘発
- 21 MiBボディで約10¹¹回バイト比較・数秒のCPU消費・ワーカー枯渇の恐れ
- 3QuerystringParserの二段階separator検索が根本原因・修正版への更新が対処
要約
python-multipartのQuerystringParserに、セミコロン区切りのクエリ文字列解析でCPU消費が二乗オーダーになる脆弱性(CVE-2026-53539)が判明した。`application/x-www-form-urlencoded`ボディをパースする際、フィールドセパレータを探す処理が毎フィールドごとにバッファ全体の`&`スキャンを失敗させてから`;`を探す二段階方式のため、O(B²)の計算量が発生する。1 MiBの`a;`繰り返しボディで約10¹¹回のバイト比較が発生し、1リクエストあたり数秒のCPU消費を引き起こす。少数の並行リクエストでワーカープロセスを枯渇させられる。
あなたへの影響
python-multipartを使用しているFastAPIやStarletteベースのサービスは、外部からのフォームデータ受信箇所でDoSリスクがあるため、修正バージョンへのアップグレードを確認しておくとよい。
推奨:スコアは中程度だが、セミコロン区切りのリクエストを受け付ける構成では影響が顕在化し得る。