무슨 일이 있었나
OpenAI 호환 에이전트 chat-completions 엔드포인트는 호출자가 해당 에이전트의 캔버스에 접근할 수 있는지 확인하는 인가 검사 전에 에이전트 실행을 시작하고 결과를 반환합니다. 검사가 너무 늦게 수행되므로 인가 결정이 사실상 우회됩니다.
왜 중요한가
공유 RAGFlow 배포에서 이는 한 주체가 접근 제어 계층을 우회하여 다른 주체의 에이전트(채팅 기록, 도구, 에이전트가 만드는 모든 호출)를 사용할 수 있게 하여 교차 테넌트 정보 공개 및 승인되지 않은 에이전트 사용을 가능하게 합니다.
공격 경로
POST /api/v1/agents/chat/completions는 UserCanvasService.accessible()가 호출자가 요청한 에이전트에 접근할 수 있는지 확인하기 전에 에이전트의 완료를 실행하고 openai 호환 분기를 통해 반환합니다.
영향받는 시스템
RAGFlow 0.25.2 ~ 0.27.3
완화 방안
RAGFlow 0.27.3+로 업그레이드하세요. 수정 커밋: https://github.com/infiniflow/ragflow/commit/20180790e1a8c55553a2f3e75718f3d65178ae6d