🇰🇷 한글 설명
ApostropheCMS의 @apostrophecms/seo 패키지는 1.4.2 버전 이하에서 Google Analytics 및 Tag Manager ID를 무분별하게 삽입하여 저장형 XSS 취약점이 발생합니다. 편집자 권한을 가진 공격자가 악성 스크립트를 입력하면 사이트 방문자 전체에게 스크립트가 실행됩니다.
💡 쉬운 설명
관리자 권한을 가진 사람이 악의적인 코드를 사이트에 숨길 수 있는 취약점입니다. 이 코드가 숨겨지면 사이트를 방문하는 모든 사용자의 브라우저에서 해당 악성 스크립트가 자동으로 실행됩니다.
🇺🇸 원문 (English)
ApostropheCMS is an open-source Node.js content management system. Versions up to and including 1.4.2 of the `@apostrophecms/seo` package injects the Google Analytics Tracking ID (`seoGoogleTrackingId`) and Google Tag Manager ID (`seoGoogleTagManager`) directly into `<script>` tag bodies using JavaScript template literals without any sanitization or validation. Any user with editor-level access (the default role for content managers) can set these fields to a malicious value, resulting in stored XSS that executes on every page for every visitor of the site. As of time of publication, no known patched versions are available.
📍 영향받는 시스템
ApostropheCMS @apostrophecms/seo package version <= 1.4.2
⚔️ 공격 벡터
편집자 권한을 가진 사용자가 seoGoogleTrackingId 또는 seoGoogleTagManager 필드에 악성 스크립트를 저장하여 저장형 XSS를 유발
🛡️ 대응 방법
패치 버전 출시 전까지 해당 필드에 대한 입력값 검증 및 스크립트 실행 방지 조치를 적용하거나, 권한을 제한하십시오.
🔧 검증 코드
출력된 버전이 1.4.2 이하이거나 vulnerable로 표시되면 취약한 버전이 설치된 것입니다.
npm list @apostrophecms/seo 2>/dev/null | grep -E '@apostrophecms/seo'