🇰🇷 한글 설명
Grav Data Manager 플러그인 1.0.1~1.4.4 버전에서 데이터 상세 보기 시 HTML 이스케이프 처리가 누락되어 발생하는 저장형 XSS 취약점입니다. 공격자가 프론트엔드 폼을 통해 악성 스크립트를 삽입하면, 관리자가 해당 항목을 조회할 때 관리자 권한으로 스크립트가 실행될 수 있습니다.
💡 쉬운 설명
게시판 등에 악성 코드를 몰래 적어두면, 관리자가 그 내용을 확인하는 순간 관리자의 권한을 탈취당할 수 있는 보안 약점입니다. 관리자가 별도의 조치를 하지 않아도 내용을 보기만 하면 공격이 성공할 수 있어 위험합니다.
🇺🇸 원문 (English)
The Grav Data Manager plugin (getgrav/grav-plugin-datamanager) versions 1.0.1 through 1.4.4 render stored data entries in the item-detail view (admin/templates/partials/item.html.twig) without escaping, applying Twig's `raw` filter — in some cases after a striptags('<br>') call that PHP's strip_tags() bypasses by preserving allowed tags together with their attributes. An unauthenticated visitor who submits a front-end form whose submissions are saved to user/data can store an HTML payload that executes as JavaScript in the session and origin of an administrator who later opens that entry in the classic admin panel, running with that administrator's privileges and CSRF token. Execution occurs without further interaction for list values (such as checkbox or multi-select fields) and on hover for ordinary text fields. Sites using the Grav 2.0 Admin Next interface are not affected, because it renders the same data through a separate, correctly escaping code path. The issue is fixed in Data Manager 1.4.5.
📍 영향받는 시스템
Grav Data Manager plugin (getgrav/grav-plugin-datamanager) versions 1.0.1 through 1.4.4
⚔️ 공격 벡터
프론트엔드 폼을 통해 악성 HTML/JavaScript 페이로드를 저장한 후, 관리자가 관리자 패널에서 해당 항목을 조회함
🛡️ 대응 방법
Grav Data Manager 플러그인을 1.4.5 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 플러그인 버전이 1.0.1에서 1.4.4 사이라면 취약한 상태이며, 1.4.5 이상이어야 안전합니다.
grep -r "getgrav/grav-plugin-datamanager" /path/to/grav/plugins/ | grep -E '1\.[0-4]\.[0-5]' || echo 'Version check required'