🇰🇷 한글 설명
SilverStripe 4.5.0 버전의 silverstripe/graphql 모듈에서 권한 검사 메커니즘이 불완전하여 발생하는 취약점입니다. 페이지네이션 등으로 제한된 목록을 요청할 때 권한이 없는 레코드가 결과 세트에 포함되어 노출될 수 있습니다. 이 취약점은 데이터 읽기 권한 탈취에 국한되며 데이터 수정은 불가능합니다.
💡 쉬운 설명
로그인한 사용자가 원래 볼 수 없는 다른 사람의 정보를 몰래 훔쳐볼 수 있는 보안 구멍입니다. 특히 페이지를 넘겨가며 데이터를 조회할 때 권한 검사를 제대로 하지 못해 정보가 유출될 수 있습니다.
🇺🇸 원문 (English)
SilverStripe 4.5.0 allows attackers to read certain records that should not have been placed into a result set. This affects silverstripe/recipe-cms. The automatic permission-checking mechanism in the silverstripe/graphql module does not provide complete protection against lists that are limited (e.g., through pagination), resulting in records that should have failed a permission check being added to the final result set. GraphQL endpoints are configured by default (e.g., for assets), but the admin/graphql endpoint is access protected by default. This limits the vulnerability to all authenticated users, including those with limited permissions (e.g., where viewing records exposed through admin/graphql requires administrator permissions). However, if custom GraphQL endpoints have been configured for a specific implementation (usually under /graphql), this vulnerability could also be exploited through unauthenticated requests. This vulnerability only applies to reading records; it does not allow unauthorised changing of records.
📍 영향받는 시스템
SilverStripe 4.5.0 및 silverstripe/recipe-cms 환경
⚔️ 공격 벡터
인증된 사용자 또는 커스텀 설정된 GraphQL 엔드포인트를 통한 데이터 조회 요청
🛡️ 대응 방법
SilverStripe 및 관련 모듈을 최신 보안 패치 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 4.5.0 이하인지 확인하여 취약 여부를 판단합니다.
composer show silverstripe/recipe-cms | grep 'versions'