🔍 CVE-2026-33326

4.3
CVSS Score
MEDIUM
2026-03-24
2026-06-17 10:37
✅ 완료

🇰🇷 한글 설명

Keystone CMS 6.5.2 이전 버전에서 findMany 쿼리의 cursor 파라미터를 통해 필드 레벨 접근 제어(isFilterable)를 우회할 수 있습니다. 공격자는 보호된 필드 값을 이용해 레코드의 존재 여부를 확인할 수 있으며, 이는 정보 유출로 이어질 수 있습니다.

💡 쉬운 설명

Keystone CMS에서 검색 기능을 통해 본래 보지 못해야 할 데이터 정보를 알아낼 수 있는 문제입니다. 공격자가 특정 데이터가 데이터베이스에 존재하는지 여부를 파악할 수 있게 됩니다.

🇺🇸 원문 (English)

Keystone is a content management system for Node.js. Prior to version 6.5.2, {field}.isFilterable access control can be bypassed in findMany queries by passing a cursor. This can be used to confirm the existence of records by protected field values. The fix for CVE-2025-46720 (field-level isFilterable bypass for update and delete mutations) added checks to the where parameter in update and delete mutations however the cursor parameter in findMany was not patched and accepts the same UniqueWhere input type. This issue has been patched in version 6.5.2.

📍 영향받는 시스템

Keystone < 6.5.2 (Node.js)

⚔️ 공격 벡터

findMany 쿼리의 cursor 파라미터에 protected 필드값을 포함하여 접근 제어 우회

🛡️ 대응 방법

Keystone을 6.5.2 이상으로 업그레이드

🔧 검증 코드

명령어가 버전을 반환하면 취약한 상태이며, 아무것도 반환되지 않으면 안전한 버전(6.5.2 이상)이 설치되어 있습니다.

Shell / Script
npm list keystone 2>/dev/null | grep keystone | awk '{print $2}' | grep -E '^[0-5]\.|^6\.[0-4]\.|^6\.5\.[0-1]$'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

💻 영향받는 소프트웨어

Node.js