🇰🇷 한글 설명
Cal.com Cal.diy 2.1.1부터 6.2.0 버전의 BookingPageTagManager 컴포넌트에 저장형 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 인증된 이벤트 소유자가 분석 추적 ID에 악성 값을 입력하면 이스케이프 없이 저장되어, 해당 공개 예약 페이지를 방문하는 모든 사용자의 브라우저에서 임의의 JavaScript가 실행됩니다.
💡 쉬운 설명
예약 페이지에 몰래 악성 코드를 심을 수 있는 보안 결함입니다. 이 코드가 페이지를 방문한 사람들의 로그인 정보를 빼가거나 그 사람 대신 요청을 보낼 수 있습니다.
🇺🇸 원문 (English)
Cal.com Cal.diy versions 2.1.1 through 6.2.0 contain a stored cross-site scripting vulnerability in the BookingPageTagManager component that allows authenticated event owners to inject arbitrary JavaScript by supplying a malicious analytics tracking ID without sanitization. Attackers can close the inline script string literal with a crafted payload that executes in the browser of every visitor to the affected public booking page, enabling session cookie theft, forged authenticated requests, and wormable propagation by chaining with CSRF-able endpoints to persist payloads on additional events.
📍 영향받는 시스템
Cal.com Cal.diy 2.1.1 ~ 6.2.0 버전
⚔️ 공격 벡터
인증된 이벤트 소유자가 분석 추적 ID 필드에 스크립트 탈출 페이로드를 입력해 저장하면, 방문자 브라우저에서 악성 스크립트가 실행되고 CSRF 가능 엔드포인트를 연계해 다른 이벤트로 전파됩니다.
🛡️ 대응 방법
Cal.diy를 6.2.0 초과의 수정된 버전으로 업그레이드하고, 분석 추적 ID 입력값에 대한 검증 및 이스케이프 처리를 적용하며, 의심스러운 이벤트의 추적 ID 설정을 점검합니다.
🔧 검증 코드
출력된 version 값이 2.1.1 이상 6.2.0 이하이면 취약한 버전이므로 즉시 업그레이드가 필요하고, 6.2.0 초과이면 취약점이 수정된 버전입니다.
cat package.json 2>/dev/null | grep -E '"version"|"name"' | head -5