무슨 일이 있었나
TypeBot 버전 3.16.1 이전(CVSS 9.3 심각, NVD 2026년 6월 18일)은 인증되지 않은 엔드포인트 POST /api/blocks/file-input/v3/generate-upload-url을 노출하며, 이는 살균되지 않은 fileName 입력을 사용하여 public/ S3 객체 키를 구성하고 Content-Type을 바인딩하지 않는 사전 서명된 PUT URL을 발급합니다. 모든 익명 사용자가 맞춤형 fileName을 제공하여 임의 S3 하위 경로에 임의 콘텐츠를 쓸 수 있으며, 이는 임의 콘텐츠 호스팅 및 저장소 원본에 대한 저장된 XSS를 가능하게 합니다. TypeBot 3.17.0에서 수정되었습니다.
왜 중요한가
TypeBot은 AI 기반 대화형 흐름을 생성하는 데 사용되는 널리 배포된 오픈 소스 챗봇 빌더입니다. 이 인증되지 않은 파일 쓰기를 통해 공격자는 악의적인 JavaScript를 챗봇의 S3 저장소 원본에 삽입할 수 있으며, 이는 TypeBot 기반 챗봇과 상호 작용하는 모든 사용자에 대한 저장된 XSS 공격을 가능하게 하며, 잠재적으로 대규모 챗봇 사용자로부터 세션 토큰, 자격 증명 또는 대화형 데이터를 탈취할 수 있습니다.
공격 경로
인증되지 않은 공격자가 경로 순회 시퀀스를 포함하는 맞춤형 fileName으로 /api/blocks/file-input/v3/generate-upload-url에 POST합니다. 사전 서명된 S3 PUT URL을 수신하고 악의적인 JavaScript를 public/ 접두사 아래의 임의 경로에 업로드하여 저장된 XSS를 가능하게 합니다.
영향받는 시스템
TypeBot (typebot.io) ≤ 3.16.1
완화 방안
TypeBot 3.17.0으로 업그레이드하십시오. 릴리스 참조: https://github.com/baptisteArno/typebot.io/releases/tag/v3.17.0