注目★★★★★GitHub Advisory
Tornado に二次関数的 DoS、マルチパート解析で CPU 100%
30秒で把握
- 1Tornado の _parseparam 関数にアルゴリズムの非効率性による O(n²) CPU 増加の脆弱性
- 2マルチパートヘッダの細工で単一リクエストがサーバを長時間応答不能にする DoS 攻撃
- 3Tornado ベースの本番 Web サービス運用チームは影響バージョン確認とパッチ待機・緩和策構築を急務
要約
Tornado の httputil.py にある _parseparam 関数が、マルチパート/フォームデータのヘッダ解析時に非効率なアルゴリズムを使い、CPU 使用率が O(n²) で増加する脆弱性が確認された (CVSS 評価なし・Severity High)。攻撃者が Content-Disposition ヘッダに大量の細工されたパラメータを含むリクエストを送信すると、サーバのシングルイベントループが長時間占有され、サービス全体が応答不能になる。string.count() をネストループ内で繰り返し呼ぶ実装が原因で、パッチは解析アルゴリズムの効率化で対処する予定。
あなたへの影響
Tornado を Web サーバとして運用するチームは、本脆弱性の影響を受けるバージョンを即座に把握し、提供元からのパッチ公開を待つか。
推奨:リバースプロキシレイヤで Content-Disposition ヘッダの検証・制限を施して緩和措置を検討すべき。