High DoS Risk: Tornado’s Default Parser Exposes Apps (CVE-2025-47287)
2025/05/19 SecurityOnline — Tornado Python Web フレームワークに新たに発見された、脆弱性 CVE-2025-47287 を悪用する攻撃者は、過剰なログ出力を引き起こし、アプリケーションをサービス拒否 (DoS) 攻撃にさらす可能性を手にする。この脆弱性の CVSS スコア 7.5 であり、深刻度 High に分類されている。Tornado のアドバイザリには、「Tornado の multipart/form-data パーサーは、特定のエラーに遭遇すると警告をログに記録するが、残されるデータの解析が継続されてしまう」と記されている。

Facebook に買収された FriendFeed により開発された Tornado は、非同期 Web フレームワークおよびネットワーク・ライブラリとして人気を博している。したがって Tornado は、WebSocket/Long Polling/Real-Time Update などの、高並列処理を必要とする Web アプリケーションで広く利用されている。
このフレームワークは、ノン・ブロッキング I/Oで、数万件の同時接続を処理できるため、スケーラブルなマイクロ・サービスにとって魅力的である。しかし、このパフォーマンス重視のアーキテクチャが誤用されると、デメリットにもなり得る。
ファイルのアップロードや、複雑な POST リクエスト本体の処理に多用される、Tornado の multipart/form-data パーサーに、この脆弱性 CVE-2025-47287 は存在する。したがって、不正な multipart request を受信すると、このパーサーは解析エラーごとに警告をログに記録するが、残りのペイロードの処理が継続されてしまう。
このアドバイザリは、「この問題を悪用するリモート攻撃者は、膨大な量のログを生成させることで、DoS 攻撃を仕掛けられる」と警告している。
この問題は、メイン・スレッドでログを処理する、Tornado の同期ログ・サブシステムによりさらに悪化する。つまり、不正なフォームデータを繰り返し送信する攻撃者は、サーバのリソースを圧迫し、以下の問題を引き起こす可能性を得る。
- 冗長ログによるディスク容量の飽和
- 過剰な I/O による CPU サイクルの枯渇
- アプリケーションとサービスの応答停止
この脆弱性が影響を及ぼす範囲は、Tornado のバージョン 6.4.2 以下であり、バージョン 6.5.0 で修正されている。この脆弱なパーサーはデフォルトで有効化されているため、Tornado 経由でのファイルのアップロードや、複雑なフォームデータを受け入れるアプリは、危険に直面するだろう。
一時的な緩和策として管理者に推奨されるのは、WAF またはプロキシ・サーバを設定し、Content-Type: multipart/form-data ヘッダーを持つリクエストをブロックすることである。
Python ベースの Web フレームワークである Tornado に、DoS 脆弱性が発生とのことです。ご利用のチームは、アップデートを忘れないよう、ご注意ください。また、同じく Python 製のWebフレームワークに関する脆弱性として、「Python Web Framework Reflex の脆弱性 CVE-2025-47425 が FIX:Admin アカウント乗っ取りの恐れ」という記事も投稿しています。よろしければ、Python + Framework で検索と併せて、ご参照ください。
You must be logged in to post a comment.