무슨 일이 있었나
AshAi.ToToolError는 Ash.Error.Unknown.UnknownError의 원시 오류 필드를 잘못 반환하고, AshAi.Tool.Errors.format/1은 해당 텍스트를 MCP 클라이언트와 모델로 전달합니다. 전체 Exception.format/2 또는 inspect/1 출력에는 도구가 노출하려는 의도가 없었던 필드를 가진 전체 레코드가 포함될 수 있습니다. CWE-209, CVSS 4.0 5.3 (Medium).
왜 중요한가
에이전트/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)