🇰🇷 한글 설명
Grav CMS의 Comments 플러그인 1.2.10 이하 버전에서 인증 없이 관리자 핸들러에 접근할 수 있는 취약점이 발견되었습니다. 공격자는 이를 통해 최근 7일간의 모든 댓글 데이터와 작성자의 이메일 주소, 서버의 절대 파일 경로를 탈취할 수 있습니다.
💡 쉬운 설명
로그인을 하지 않은 외부인도 관리자 페이지의 댓글 정보를 몰래 훔쳐볼 수 있는 보안 구멍이 발견되었습니다. 이 과정에서 사용자의 이메일 주소와 서버 내부의 중요한 경로 정보가 함께 유출될 수 있습니다.
🇺🇸 원문 (English)
The Comments plugin (getgrav/grav-plugin-comments) for Grav CMS through version 1.2.10 registers an admin handler that returns comment data as JSON without any authentication check. The handler branches on isAdmin(), which only indicates that the admin service is registered on the current route rather than that the visitor is authenticated, and it echoes the JSON and calls exit() during the plugins stage, before the classic Admin plugin would render its login screen. On a site using the classic Admin plugin with Comments enabled (the default), an unauthenticated remote attacker can request /admin/comments/page:<n> (e.g. page:0.001) and retrieve every comment from the last 7 days, including each commenter's email address and the absolute server filesystem path of the data file. Sites running the Grav 2.0 Admin Next stack (admin2 + api) are not affected via this path. The issue is fixed in 1.2.11, which requires an authenticated user with admin.comments or admin.super and removes the absolute filePath from the response.
📍 영향받는 시스템
Grav CMS Comments plugin version 1.2.10 and below
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 특정 URL(/admin/comments/page:<n>)을 요청하여 데이터를 탈취
🛡️ 대응 방법
Comments 플러그인을 1.2.11 버전 이상으로 업데이트
🔧 검증 코드
출력된 플러그인 버전이 1.2.10 이하인지 확인하여 취약 여부를 판단합니다.
grep -r "getgrav/grav-plugin-comments" /path/to/grav/plugins | grep -E 'version|1\[0-2]\[.0-9]'