🇰🇷 한글 설명
Karmada 1.12.0 이전 버전에서 TarSlip 취약점으로 인해 공격자가 악의적인 CRD 파일을 통해 파일시스템의 임의 경로에 파일을 작성할 수 있습니다. 이는 karmadactl init이나 karmada-operator를 통해 Karmada 초기화 시 발생 가능합니다.
💡 쉬운 설명
Karmada 설정 파일을 다운로드할 때 악의적인 파일이 포함되어 있으면 해커가 컴퓨터에 임의의 파일을 저장할 수 있습니다. 버전 1.12.0 이상으로 업그레이드하거나 파일에 ../ 같은 경로 조작 문자가 없는지 확인하면 됩니다.
🇺🇸 원문 (English)
Karmada is a Kubernetes management system that allows users to run cloud-native applications across multiple Kubernetes clusters and clouds. Prior to version 1.12.0, both in karmadactl and karmada-operator, it is possible to supply a filesystem path, or an HTTP(s) URL to retrieve the custom resource definitions(CRDs) needed by Karmada. The CRDs are downloaded as a gzipped tarfile and are vulnerable to a TarSlip vulnerability. An attacker able to supply a malicious CRD file into a Karmada initialization could write arbitrary files in arbitrary paths of the filesystem. From Karmada version 1.12.0, when processing custom CRDs files, CRDs archive verification is utilized to enhance file system robustness. A workaround is available. Someone who needs to set flag `--crd` to customize the CRD files required for Karmada initialization when using `karmadactl init` to set up Karmada can manually inspect the CRD files to check whether they contain sequences such as `../` that would alter file paths, to determine if they potentially include malicious files. When using karmada-operator to set up Karmada, one must upgrade one's karmada-operator to one of the fixed versions.
📍 영향받는 시스템
Karmada < 1.12.0 (karmadactl, karmada-operator)
⚔️ 공격 벡터
악의적인 CRD tarball 파일을 공급하여 압축 해제 시 경로 조작을 통한 임의 파일 쓰기
🛡️ 대응 방법
Karmada를 1.12.0 이상으로 업그레이드하거나 CRD 파일에서 ../ 패턴이 없는지 사전 검사
🔧 검증 코드
1.12.0 이상이면 안전함. 미설치이면 설치 필요. 1.12.0 미만이면 즉시 업그레이드 필요
karmadactl version 2>/dev/null | grep -oP 'Version: \K[0-9]+\.[0-9]+\.[0-9]+' || echo 'Not installed'