🇰🇷 한글 설명
Grav CMS Form 플러그인의 select 필드 템플릿에서 저장형 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 분류 태그와 카테고리 값이 Twig |raw 필터로 관리자 패널에 렌더링되어 전역 자동 이스케이프 보호를 우회합니다. 9.1.0 이전 버전에서 영향을 받으며, 9.1.0에서 수정되었습니다.
💡 쉬운 설명
편집자 권한을 가진 사용자가 악성 스크립트를 입력할 수 있습니다. 관리자가 해당 페이지를 열면 관리자의 브라우저에서 이 스크립트가 실행됩니다.
🇺🇸 원문 (English)
The form plugin for Grav adds the ability to create and use forms. Prior to 9.1.0, a Stored Cross-Site Scripting (XSS) vulnerability exists in the Grav CMS Form plugin's select field template. Taxonomy tag and category values are rendered with the Twig |raw filter in the admin panel, bypassing the global autoescape protection. An editor-level user can inject arbitrary JavaScript that executes in any administrator's browser session when they view or edit any page in the admin panel. This vulnerability is fixed in 9.1.0.
📍 영향받는 시스템
Grav CMS Form 플러그인 9.1.0 이전 버전
⚔️ 공격 벡터
편집자 권한 사용자가 태그/카테고리 값에 악성 JavaScript를 저장하고, 관리자가 관리 패널에서 해당 페이지를 보거나 편집할 때 스크립트가 실행됨
🛡️ 대응 방법
Grav Form 플러그인을 9.1.0 이상으로 업그레이드 (예: bin/gpm update form)
🔧 검증 코드
출력된 버전 값이 9.1.0 미만이면 취약하며, 9.1.0 이상이면 패치가 적용된 것입니다. 아무 출력이 없으면 플러그인 경로를 확인하세요.
grep -E '^version:' user/plugins/form/blueprints.yaml 2>/dev/null || grep -E '"version"' user/plugins/form/composer.json 2>/dev/null