🇰🇷 한글 설명
Concrete CMS 9.5.4 미만 버전에서 사용자 시간대(uTimezone) 값에 대한 검증 및 출력 인코딩이 누락되어 저장형 XSS 취약점이 발생합니다. 공격자가 악성 스크립트를 삽입하면 관리자가 대시보드에서 해당 사용자를 조회할 때 관리자 권한으로 스크립트가 실행되어 사이트 설정 변경이나 계정 탈취가 가능합니다.
💡 쉬운 설명
사용자 설정 정보에 악성 코드를 숨겨두면, 관리자가 해당 정보를 확인하는 순간 관리자 권한을 통째로 빼앗길 수 있는 보안 약점입니다. 해커가 관리자처럼 행동하여 사이트를 마음대로 조작할 수 있게 됩니다.
🇺🇸 원문 (English)
Concrete CMS below 9.5.4 did not validate the user timezone value (uTimezone) on write and rendered it without output encoding on the Dashboard user management page, where Date::getTimezoneDisplayName() returns any non-IANA value unchanged. A stored cross-site scripting payload saved in this field executed in an administrator's browser when they viewed the affected user in the Dashboard, running script in the admin session (for example to read CSRF tokens, create administrator accounts, or change site settings). In Concrete CMS 9.5.3 the field became reachable by unauthenticated visitors through public registration; in Concrete CMS below 9.5.3, the same field was reachable by any authenticated user through the account profile editor. Exploitation required concrete.misc.user_timezones to be enabled (off by default), and the unauthenticated path additionally required public registration to be enabled. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.7 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Suraj Bhosale for reporting.
📍 영향받는 시스템
Concrete CMS 9.5.4 미만 버전 (concrete.misc.user_timezones 설정 활성화 시)
⚔️ 공격 벡터
공개 회원가입 또는 프로필 편집을 통해 악성 스크립트가 포함된 시간대 값을 저장한 후, 관리자가 대시보드에서 이를 조회하도록 유도
🛡️ 대응 방법
Concrete CMS를 최신 보안 패치가 적용된 9.5.4 이상의 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 9.5.4 미만인지 확인하여 취약 여부를 판단합니다.
composer show concrete/concretecms | grep 'versions'