🇰🇷 한글 설명
CKAN 데이터 관리 시스템의 여러 플러그인(XLoader, DataPusher 등)에서 리소스 URL에 대한 검증 부재로 인해 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. 공격자는 악의적인 URL을 사용하여 시스템이 접근해서는 안 되는 내부 또는 외부 리소스를 강제로 요청하게 만들 수 있습니다.
💡 쉬운 설명
시스템이 파일을 가져올 때 주소를 제대로 확인하지 않아 발생하는 문제입니다. 공격자가 가짜 주소를 입력하면, 시스템이 내부의 비밀 정보나 허가되지 않은 사이트에 대신 접속하여 정보를 가져오게 만들 수 있습니다.
🇺🇸 원문 (English)
CKAN is an open-source data management system for powering data hubs and data portals. There are a number of CKAN plugins, including XLoader, DataPusher, Resource proxy and ckanext-archiver, that work by downloading the contents of local or remote files in order to perform some actions with their contents (e.g. pushing to the DataStore, streaming contents or saving a local copy). All of them use the resource URL, and there are currently no checks to limit what URLs can be requested. This means that a malicious (or unaware) user can create a resource with a URL pointing to a place where they should not have access in order for one of the previous tools to retrieve it (known as a Server Side Request Forgery). Users wanting to protect against these kinds of attacks can use one or a combination of the following approaches: (1) Use a separate HTTP proxy like Squid that can be used to allow / disallow IPs, domains etc as needed, and make CKAN extensions aware of this setting via the ckan.download_proxy config option. (2) Implement custom firewall rules to prevent access to restricted resources. (3) Use custom validators on the resource url field to block/allow certain domains or IPs. All latest versions of the plugins listed above support the ckan.download_proxy settings. Support for this setting in the Resource Proxy plugin was included in CKAN 2.10.5 and 2.11.0.
📍 영향받는 시스템
CKAN 및 관련 플러그인(XLoader, DataPusher, Resource proxy, ckanext-archiver) 구버전
⚔️ 공격 벡터
악의적인 URL이 포함된 리소스를 생성하여 시스템이 내부 네트워크나 제한된 자원에 접근하도록 유도
🛡️ 대응 방법
ckan.download_proxy 설정을 사용하여 HTTP 프록시를 적용하거나, 방화벽 규칙 및 커스텀 URL 검증기를 구현하십시오.
🔧 검증 코드
설치된 CKAN 및 플러그인의 버전을 확인하여 취약점이 해결된 최신 버전(Resource Proxy의 경우 CKAN 2.10.5/2.11.0 이상)인지 확인합니다.
pip list | grep -E 'ckan|ckanext-archiver|ckanext-datapusher|ckanext-xloader'