🇰🇷 한글 설명
Directus 11.16.1 미만 버전에서 GraphQL 인트로스펙션 비활성화 설정이 우회되는 취약점이 발견되었습니다. /graphql/system 엔드포인트의 server_specs_graphql 리졸버를 통해 스키마 구조가 노출될 수 있으며, 이는 인증되지 않은 사용자나 권한이 있는 사용자에게 데이터베이스 구조를 드러냅니다. 이 문제는 11.16.1 버전에서 수정되었습니다.
💡 쉬운 설명
데이터베이스의 설계도를 숨기려고 설정했음에도 불구하고, 특정 경로를 통해 설계도가 유출되는 보안 구멍이 발견되었습니다. 공격자는 이 설계도를 보고 어떤 데이터가 어디에 저장되어 있는지 파악할 수 있습니다.
🇺🇸 원문 (English)
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.16.1, when GRAPHQL_INTROSPECTION=false is configured, Directus correctly blocks standard GraphQL introspection queries (__schema, __type). However, the server_specs_graphql resolver on the /graphql/system endpoint returns an equivalent SDL representation of the schema and was not subject to the same restriction. This allowed the introspection control to be bypassed, exposing schema structure (collection names, field names, types, and relationships) to unauthenticated users at the public permission level, and to authenticated users at their permitted permission level. This vulnerability is fixed in 11.16.1.
📍 영향받는 시스템
Directus versions prior to 11.16.1
⚔️ 공격 벡터
unauthenticated or authenticated users accessing the /graphql/system endpoint via server_specs_graphql resolver
🛡️ 대응 방법
Update Directus to version 11.16.1 or later
🔧 검증 코드
출력된 Directus 버전이 11.16.1 미만이면 취약한 상태입니다.
npm list directus | grep -E 'directus@([0-9]+\.[0-9]+\.[0-9]+)'