🇰🇷 한글 설명
FastGPT는 오픈소스 AI 지식베이스 플랫폼입니다. 4.14.17 이상 4.15.0-beta4 미만 버전에서 인증된 테넌트 사용자가 POST /api/core/dataset/collection/create/reTrainingCollection 호출 시 다른 테넌트의 서버 소유 datasetId를 저장할 수 있어, 혼합된 데이터셋 객체가 생성되고 이후 엔드포인트가 일관되지 않은 소유권 기준으로 인가를 판단합니다. 이로 인해 혼합 객체 ID를 알고 있을 경우 테넌트 간 읽기, 수정, 삭제가 가능해집니다. 4.15.0-beta4 버전에서 수정되었습니다.
💡 쉬운 설명
같은 서비스를 쓰는 다른 회사의 지식 데이터를 일부 볼 수 있거나 바꿀 수 있는 문제입니다. 공격자가 다른 회사 데이터의 식별 번호를 알고 있어야 악용할 수 있습니다.
🇺🇸 원문 (English)
FastGPT is an open source AI knowledge base platform. From 4.14.17 to before 4.15.0-beta4, FastGPT allows an authenticated tenant user to call POST /api/core/dataset/collection/create/reTrainingCollection in a way that persists a server-owned datasetId value from another tenant. This creates mixed dataset objects and downstream dataset, collection, and training endpoints then make authorization decisions from inconsistent ownership anchors, allowing cross-tenant read, update, and delete access when mixed object ids are known. This issue is fixed in version 4.15.0-beta4.
📍 영향받는 시스템
FastGPT 4.14.17 이상 4.15.0-beta4 미만
⚔️ 공격 벡터
인증된 테넌트 사용자가 reTrainingCollection API에 다른 테넌트의 datasetId를 주입해 혼합 객체를 만든 뒤, 해당 ID로 타 테넌트 데이터에 접근
🛡️ 대응 방법
FastGPT를 4.15.0-beta4 이상 버전으로 업그레이드
🔧 검증 코드
출력된 태그 버전이 4.14.17 이상 4.15.0-beta4 미만이면 취약하며, 4.15.0-beta4 이상이면 패치된 상태입니다.
docker images --format '{{.Repository}}:{{.Tag}}' | grep -i fastgpt 2>/dev/null