何が起きたか
AshAi.ToToolErrorはAsh.Error.Unknown.UnknownErrorの生のエラーフィールドを誤って返し、AshAi.Tool.Errors.format/1はそのテキストをMCPクライアントとモデルに転送する。完全なException.format/2またはinspect/1の出力には、ツールが意図的に公開しなかったフィールドを含むレコード全体が含まれる可能性がある。CWE-209、CVSS 4.0で5.3(中)。
なぜ重要か
エージェント/MCP設定では、内部モジュール名やレコードフィールド値をLLMやMCPクライアントに漏洩させるツールが、機密ビジネスデータを公開し、その後のプロンプトインジェクションや偵察を助ける可能性がある。また、エラーがログに記録されず、インシデント対応を弱体化させる。
攻撃経路
認証された呼び出し側がAshAiツール呼び出しをJSONエンコードできない形で失敗させ、生の例外/inspect出力(ツールが決して返さないモジュール名や検査されたレコード値)がMCPクライアント(ツール呼び出しとリソース読み取り)およびAshAi.ToolLoopのモデルに送信される
影響を受けるシステム
ash_ai(Elixir AshフレームワークAIツール)1.5.0〜1.5.1未満
緩和策
ash_ai 1.5.1にアップグレード。エラーをIDでログに記録し、呼び出し側にはそのIDのみを返す。失敗したツールが公開できるデータを制限する(コミットaf7987769d78ed070c8a9f6e6ee542d91744eae6 / アドバイザリGHSA-vhmw-fwrr-r6c6)