🇰🇷 한글 설명
CKAN 데이터 관리 시스템의 특정 Docker 이미지에서 기본 비밀 키(secret key)가 동일하게 설정되어 발생하는 취약점입니다. 사용자가 환경 변수를 통해 별도의 키를 설정하지 않을 경우, 서로 다른 CKAN 인스턴스 간에 동일한 키가 공유되어 인증 요청을 위조할 수 있습니다.
💡 쉬운 설명
여러 서비스가 똑같은 비밀번호를 기본값으로 사용하고 있어, 해커가 이 비밀번호를 알아내면 다른 서비스의 권한을 가짜로 만들어낼 수 있는 문제입니다. 자신만의 고유한 비밀번호를 설정하지 않은 경우에만 위험합니다.
🇺🇸 원문 (English)
CKAN is an open-source DMS (data management system) for powering data hubs and data portals. When creating a new container based on one of the Docker images listed below, the same secret key was being used by default. If the users didn't set a custom value via environment variables in the `.env` file, that key was shared across different CKAN instances, making it easy to forge authentication requests. Users overriding the default secret key in their own `.env` file are not affected by this issue. Note that the legacy images (ckan/ckan) located in the main CKAN repo are not affected by this issue. The affected images are ckan/ckan-docker, (ckan/ckan-base images), okfn/docker-ckan (openknowledge/ckan-base and openknowledge/ckan-dev images)
keitaroinc/docker-ckan (keitaro/ckan images).
📍 영향받는 시스템
ckan/ckan-docker, ckan/ckan-base, okfn/docker-ckan, keitaroinc/docker-ckan 이미지 기반 인스턴스
⚔️ 공격 벡터
공유된 기본 비밀 키를 이용한 인증 토큰 및 요청 위조
🛡️ 대응 방법
.env 파일의 환경 변수를 통해 고유한 SECRET_KEY를 설정하여 기본값을 덮어쓰기
🔧 검증 코드
출력된 SECRET_KEY 값이 CKAN 공식 문서에 명시된 기본값과 일치하는지 확인하여 취약 여부를 판단합니다.
docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' <container_id> | grep SECRET_KEY