何が起きたか
TypeBotの generate-upload-url エンドポイントは「fileName」パラメータをサニタイズしておらず、パストラバーサルにより任意のファイルをS3ストレージに書き込むことが可能です。認証なし攻撃者は、任意のS3パスに悪意のあるファイルをアップロードできます。
なぜ重要か
TypeBotチャットボットはユーザー入力、会話ログ、添付ファイルをS3に保存します。攻撃者は悪意のあるファイルを注入し、チャットボットアセットを上書きしたり、保存されたデータを流出させたりできます。
攻撃経路
認証なし攻撃者は、パストラバーサルシーケンス(../)を含むサニタイズされていない「fileName」パラメータで POST /api/blocks/file-input/v3/generate-upload-url エンドポイントを呼び出し、任意のファイルをS3ストレージバケットに書き込みます。
影響を受けるシステム
TypeBotバージョン3.16.1以前
緩和策
TypeBotをバージョン3.16.2以降に更新してください。fileName パラメータで入力検証を実装してください。