🇰🇷 한글 설명
CKAN MCP Server 0.4.112 미만 버전에서 src/utils/cache.ts의 canonicalizeParams 함수가 요청 파라미터를 처리할 때 앰퍼샌드(&), 등호(=), 수직 바(|) 구분자를 이스케이프 처리하지 않는 취약점이 존재합니다. 이로 인해 서로 다른 논리적 파라미터 세트가 동일한 캐시 키로 충돌할 수 있으며, 공격자가 피해자의 고유한 쿼리에 대한 응답을 공유 캐시에 미리 심어둘 수 있습니다.
💡 쉬운 설명
데이터를 빠르게 불러오기 위해 사용하는 '임시 저장소(캐시)'의 이름표를 만드는 과정에서 오류가 발생합니다. 공격자가 교묘하게 조작된 요청을 보내 저장소의 이름을 엉뚱하게 만들어, 사용자가 원하는 데이터 대신 공격자가 준비한 잘못된 데이터를 받게 할 수 있습니다.
🇺🇸 원문 (English)
CKAN MCP Server is a tool for querying CKAN open data portals. Prior to 0.4.112, canonicalizeParams in src/utils/cache.ts serializes request parameters with unescaped ampersand, equals-sign, and vertical-bar delimiters, allowing different logical parameter sets used by buildCacheKey to collide and an attacker to prime a shared cache with a response for a victim's distinct query. This issue is fixed in version 0.4.112.
📍 영향받는 시스템
CKAN MCP Server 0.4.112 미만 모든 버전
⚔️ 공격 벡터
특수하게 조작된 파라미터를 포함한 요청을 보내 캐시 키 충돌을 유도하는 캐시 오염(Cache Poisoning) 공격
🛡️ 대응 방법
CKAN MCP Server를 최신 버전인 0.4.112 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 0.4.112보다 낮은지 확인하여 취약 여부를 판단합니다.
npm list ckann-mcp-server --depth=0 | grep -E 'ckann-mcp-server@([0-9]+\.[0-9]+\.[0-9]+)'