何が起きたか
BudibaseのAIテーブル生成機能におけるサーバーサイドリクエストフォージェリ:uploadUrlヘルパーがフィルタリングなしのnode-fetchでユーザー指定の添付ファイルURLを取得し、認証されたビルダーユーザーがAIテーブルプロンプトを内部アドレスのフェッチに変換し、presigned-URLリークを通じてレスポンスを読み戻すことができる。
なぜ重要か
BudibaseのAI機能がトリガーサーフェスだが、実際の爆発半径はBudibaseホストである:AI生成テーブルは内部ネットワークとクラウドIAMメタデータへの特権的なユーザー制御可能な経路である。AIデプロイメントにとっては、AI機能エンドポイントがSSRFプリミティブになる具体例である。
攻撃経路
認証されたビルダーユーザーが、添付ファイル列に内部URLを配置するプロンプトをPOST /api/ai/tablesに送信する。packages/server/src/utilities/fileUtils.tsのuploadUrl関数は、ブラックリスト付きのfetchWithBlacklistバリアントの代わりにraw node-fetchを使用するため、サーバーが内部URL(例:クラウドメタデータ169.254.x.x)をフェッチし、レスポンスをpresignedオブジェクトストレージURL内で呼び出し元に返す(CVSS 7.7、認情報開示を伴うSSRF)。
影響を受けるシステム
Budibase 3.41.0まで
緩和策
GitHub advisory GHSA-3c52-v5v2-3r56に従ってパッチ適用(AIテーブルアップロードをURLブラックリスト化フェッチパス経由にルーティング)。ビルダーユーザーの信頼を制限