🇰🇷 한글 설명
Tekton Pipelines의 git resolver에서 path traversal 취약점이 발견되었습니다. 권한이 있는 사용자가 pathInRepo 파라미터를 조작하여 resolver pod의 파일 시스템에 있는 임의의 파일과 ServiceAccount 토큰을 읽을 수 있습니다.
💡 쉬운 설명
프로그램의 경로 설정 오류를 이용해 허용되지 않은 내부 파일을 몰래 훔쳐볼 수 있는 보안 구멍입니다. 이를 통해 시스템의 중요한 비밀번호나 인증 정보를 탈취당할 위험이 있습니다.
🇺🇸 원문 (English)
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Starting in version 1.0.0 and prior to versions 1.0.1, 1.3.3, 1.6.1, 1.9.2, and 1.10.2, the Tekton Pipelines git resolver is vulnerable to path traversal via the `pathInRepo` parameter. A tenant with permission to create `ResolutionRequests` (e.g. by creating `TaskRuns` or `PipelineRuns` that use the git resolver) can read arbitrary files from the resolver pod's filesystem, including ServiceAccount tokens. The file contents are returned base64-encoded in `resolutionrequest.status.data`. Versions 1.0.1, 1.3.3, 1.6.1, 1.9.2, and 1.10.2 contain a patch.
📍 영향받는 시스템
Tekton Pipelines 1.0.0 버전 및 1.0.1, 1.3.3, 1.6.1, 1.9.2, 1.10.2 미만 버전
⚔️ 공격 벡터
ResolutionRequests 생성 권한을 가진 사용자가 pathInRepo 파라미터에 경로 조작 문자열을 삽입하여 공격
🛡️ 대응 방법
패치가 적용된 버전(1.0.1, 1.3.3, 1.6.1, 1.9.2, 1.10.2 이상)으로 업데이트
🔧 검증 코드
출력된 이미지 태그 버전이 취약한 버전 범위에 포함되는지 확인
kubectl get pods -n tekton-pipelines -o jsonpath='{.items[*].spec.containers[*].image}' | grep -E 'tektonpipelines/pipelines:[0-9.]+'