
Deepfiction AI의 채팅 API에서 안전하지 않은 직접 객체 참조(IDOR) 취약점을 시연하여 공격자가 다른 사용자의 크레딧을 소비하고 역할 구성을 유출할 수 있음을 보여줍니다.
Deepfiction AI는 개인화된 스토리텔링에 혁명을 일으키는 것을 목표로 하는 AI 엔터테인먼트 회사입니다. Deepfiction AI는 LLM과 채팅하여 이야기를 만드는 웹 애플리케이션을 제공하며, 이는 채팅 구성 요소에서 안전하지 않은 직접 객체 참조(IDOR)에 취약합니다. 공격자는 이 IDOR을 악용하여 다른 사용자의 크레딧으로 LLM과 채팅할 수 있습니다.
API 엔드포인트 https://www.deepfiction.ai/api/story/create-story-part는 대화를 시작하거나 계속하는 데 사용됩니다. 테스트 결과 이 API는 액세스 제어를 위해 요청 본문의 treatment_id 및 user_id 필드에만 의존하는 것으로 나타났습니다.
웹페이지 https://www.deepfiction.ai/browse/stories에 나열된 공개적으로 접근 가능한 대화에서 id 및 author_id 필드가 노출되는 것이 관찰되었습니다. 이러한 노출된 필드는 create-story-part API에서 예상하는 treatment_id(id에 매핑) 및 user_id(author_id에 매핑) 매개변수에 직접적으로 대응됩니다.
결과적으로 공격자는 유출된 id(treatment_id로)와 author_id(user_id로)를 이 API에 대한 요청에 대체할 수 있습니다. 이를 통해 다른 사용자의 크레딧을 소비하여 대규모 언어 모델(LLM)과 상호 작용할 수 있습니다. 그림은 이 취약점의 PoC를 보여줍니다.


또한 네트워크 트래픽(예: 패킷 캡처) 분석을 통해 각 캐릭터의 특정 역할 구성(캐릭터 설정)이 드러날 수 있습니다. 이러한 구성은 시스템 프롬프트와 유사하며 LLM 챗봇의 중요한 시스템 리소스를 나타냅니다. 이러한 노출은 독점적인 프롬프트 엔지니어링 세부 사항이나 캐릭터 정의를 드러낼 수 있으므로 민감한 데이터 유출의 한 형태를 구성합니다.

이 취약점은 https://www.deepfiction.ai의 모든 사용자에게 영향을 미칠 수 있습니다. 사용자의 채팅 크레딧은 유출된 treatment_id와 user_id로 남용됩니다.