🇰🇷 한글 설명
Craft CMS 5.0.0-RC1부터 5.9.22까지의 버전에서, Author 권한을 가진 제어판 사용자가 엔트리 제목에 악성 JavaScript를 저장할 수 있습니다. 관리자 등 다른 사용자가 테이블 뷰에서 해당 엔트리 아래로 다른 엔트리를 드래그하면 피해자의 세션에서 스크립트가 실행되는 저장형 XSS 취약점입니다. 5.9.23 버전에서 수정되었습니다.
💡 쉬운 설명
글 제목에 몰래 나쁜 코드를 심어두고, 관리자가 목록에서 글을 끌어다 놓는 순간 그 코드가 관리자 화면에서 실행되는 문제입니다. 공격자는 이미 CMS 계정이 있어야 합니다.
🇺🇸 원문 (English)
Craft CMS is a content management system (CMS). In versions 5.0.0-RC1 through 5.9.22, an author-level control panel user can store a malicious JavaScript payload in an entry title. When an admin, or any control panel user with saveEntries for the same Structure section, drags another entry under the poisoned entry in table view, the payload executes in the victim’s session. The issue is exploitable because the title is escaped into data-title by the server, decoded again by the browser, read with jQuery .data('title'), and then concatenated into a new HTML string without attribute escaping. To exploit, an attacker must have an existing control panel account (Author role minimum), the victim must perform a drag operation (not just visit the page), and the victim’s session needs to be elevated at trigger time. This issue has been fixed in version 5.9.23.
📍 영향받는 시스템
Craft CMS 5.0.0-RC1 ~ 5.9.22 (5.9.23 이상에서 수정)
⚔️ 공격 벡터
Author 이상 권한의 계정으로 악성 스크립트가 포함된 엔트리 제목을 저장한 뒤, 피해자(관리자 등)가 테이블 뷰에서 드래그 작업을 수행하도록 유도
🛡️ 대응 방법
Craft CMS를 5.9.23 이상으로 업데이트하고, 불필요한 Author 이상 계정을 점검하며, 신뢰할 수 없는 사용자의 제어판 접근을 제한
🔧 검증 코드
출력된 버전이 5.9.23 이상이면 수정된 버전이며, 5.0.0-RC1 ~ 5.9.22 범위에 해당하면 즉시 업데이트가 필요합니다.
composer show craftcms/cms 2>/dev/null | grep -E '^versions'
💻 영향받는 소프트웨어
Multi-Domain Security Management Server