🇰🇷 한글 설명
Rocket.Chat의 POST /api/v1/fingerprint 엔드포인트는 인증은 요구하지만 권한 검사를 수행하지 않습니다. 따라서 일반 사용자 계정도 setDeploymentAs 값을 전달해 워크스페이스의 Rocket.Chat Cloud 등록을 영구적으로 해제할 수 있으며, 이로 인해 클라우드 자격 증명과 라이선스가 삭제되고 푸시 알림이 중단됩니다.
💡 쉬운 설명
로그인만 한 일반 사용자도 채팅 서버를 클라우드 서비스에서 분리시킬 수 있는 취약점입니다. 분리되면 라이선스와 알림 기능이 깨지고 관리자가 다시 등록해야 복구됩니다.
🇺🇸 원문 (English)
Rocket.Chat is an open-source, secure, fully customizable communications platform. Prior to 8.5.1, 8.4.4, 8.3.6, 8.2.6, 8.1.6, 8.0.7, and 7.10.13, the POST /api/v1/fingerprint REST endpoint enforces authentication (authRequired: true) but performs no authorization check. Any authenticated user — including a standard user role account — can call this endpoint with {"setDeploymentAs": "new-workspace"} to permanently deregister the workspace from Rocket.Chat Cloud. This wipes all cloud credentials, removes the workspace license, breaks push notifications for all users, and requires manual re-registration to recover. This vulnerability is fixed in 8.5.1, 8.4.4, 8.3.6, 8.2.6, 8.1.6, 8.0.7, and 7.10.13.
📍 영향받는 시스템
Rocket.Chat 8.5.1 미만, 8.4.4 미만, 8.3.6 미만, 8.2.6 미만, 8.1.6 미만, 8.0.7 미만, 7.10.13 미만
⚔️ 공격 벡터
인증된 일반 사용자 계정으로 POST /api/v1/fingerprint에 {"setDeploymentAs": "new-workspace"}를 전송
🛡️ 대응 방법
8.5.1, 8.4.4, 8.3.6, 8.2.6, 8.1.6, 8.0.7, 7.10.13 이상의 보안 패치 버전으로 업데이트
🔧 검증 코드
출력된 버전이 8.5.1, 8.4.4, 8.3.6, 8.2.6, 8.1.6, 8.0.7, 7.10.13 중 해당 브랜치의 패치 버전 이상이면 취약하지 않으며, 미만이면 취약합니다.
docker exec $(docker ps -qf ancestor=registry.rocket.chat/rocketchat/rocket.chat) node -e "console.log(require('/app/bundle/package.json').version)" 2>/dev/null || grep -m1 '"version"' /app/bundle/programs/server/package.json 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
💻 영향받는 소프트웨어
VMware Telco Cloud Platform